批量重命名未在所有文件上运行

时间:2014-06-04 10:52:43

标签: batch-file

我有这个批处理脚本,但它适用于少数文件,有时不适用。我不明白错误在哪里。有什么方法可以测试tehscript在所有文件上运行。

@echo off&cls
setlocal EnableDelayedExpansion
for /f "tokens=1-4 delims=_." %%a in ('dir /b /a-d *.JPG') do (
echo %%a_%%b_%%c.%%d
set $Char=%%b
set $CharF=!$Char:~0,4!-!$Char:~4,2!-!$Char:~6,2!_!$Char:~8,2!-!$Char:~10,2!-!$Char:~12,2!
echo !$CharF!
ren %%a_%%b_%%c.%%d %%a_%%c_!$CharF!.%%d
)

档案

NoName_20140603133008976_DONCASTER.jpg
NoName_20140603132507734_DONCASTER.jpg

1 个答案:

答案 0 :(得分:0)

您发布的脚本运行正常,但只是按照发布的示例数据进行操作,如果仔细观察,会发现存在两个重复的文件名,如下所示

NoName_20140603124452955_DONCASTER

NoName_20140603131541932_DONCASTER

您的脚本将无法执行重命名操作A duplicate file name exists,因为这些文件是重复的,并且您抱怨说的是script won't rename them

希望这是有道理的。