批量重命名的脚本只保留原始文件名的某些字符?

时间:2013-02-18 01:43:18

标签: command-line batch-file file-rename

我需要使用可变大小的原始文件名重命名数千个rar文件。我必须通过保留原始文件名的前3个和后4个字符并在中间添加3个随机字符[数字]来使它们长10个字符。

实施例

输入

“John Doe - Jane Doe - 19073275.rar”

“XXXX - XYXY- 98705674.rar

输出:

“Joh1273275.rar”

“XXX9795674.rar”

接下来,.bat应生成一个带有原始名称的.txt和每个文件下面的修改后的名称!

我知道这是可能的,但在编写它时我完全是愚蠢的。请帮忙!

2 个答案:

答案 0 :(得分:2)

下面的批处理文件可以执行您想要的操作:

@echo off
setlocal EnableDelayedExpansion
for %%a in (*.rar) do (
   set name=%%~Na
   set num=00!random!
   set newName=!name:~0,3!!num:~-3!!name:~-4!
   ren "%%a" "!newName!%%~Xa"
   echo "%%a" modified to "!newName!%%~Xa" >> log.txt
)

答案 1 :(得分:0)

我会编写一个脚本来以任何简单的方式生成名称(例如前6 +后4),然后检查是否要手动清理任何重复项(或者第二次移动中间,或者.. )。除非这是一个重复的工作(每天都这样做),否则不值得完全自动化。