【问题标题】:Rename files with random names in a folder重命名文件夹中随机名称的文件
【发布时间】:2014-05-30 15:38:41
【问题描述】:

我需要一些代码来重命名文件夹中的多个(批量或全部)文件。

我找到了batch file script;但是,它只用数字重命名;这不正是我要找的。尽管如此,我下载它测试它。

我不完全了解如何修改此 .bat 文件代码以使用字符串重命名(而不是仅使用数字)。

例子:

在一个文件夹中有 100 张图像,所有图像都带有一些数字或名称。假设所有图像都属于 "john" ,所以我想用 "john+ a random string" 重命名所有图像。

“随机字符串”来自 3000 个英文单词的数组(从字典中下载)。

在脚本中,3000 个名字是固定的,除了第一个是可设置的(john、mary、sai、pavan 等...)

最终结果是重命名所有图像文件;即:john good、john bad、johnating、john idiol、john silly 等......

如何做到这一点?

【问题讨论】:

  • 嗨,Prasanth,你不能使用比 DOS 更强大的东西吗?这并非不可能,但使用一些更高级的脚本语言会更容易......
  • 您的单词列表是否在单个平面文本文件中,每行一个单词?速度是一个因素吗?
  • 图像文件有特定的扩展名?

标签: batch-file


【解决方案1】:
@echo off
setlocal EnableDelayedExpansion

set baseName=john

rem Load the list of 3000 words
set num=0
for /F %%a in (dictionary.txt) do (
   set /A num+=1
   set word[!num!]=%%a
)

rem Rename the files
for /F "delims=" %%a in ('dir /B /A-D *.*') do (
   set /A randomIndex=!random! * num / 32768 + 1
   for /F %%r in ("!randomIndex!") do ren "%%a" "%baseName% !word[%%r]!%%~Xa"
)

【讨论】:

  • 这也会重命名批处理文件和dictionary.txt
  • 是的。这两个文件可能位于不同的目录中,但我认为“图像文件”具有特定扩展名更容易。在进行修改之前,我将等待 OP 提供更多详细信息...
猜你喜欢
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 2018-08-21
  • 1970-01-01
相关资源
最近更新 更多