Windows 对以数字开头的文件进行批处理重新编号
我经常使用这个批处理脚本来使用ImageMagick并排整理图像,它很好地实现了这一目的,除非我面对的是文件名以数字开头的图像 例如:Windows 对以数字开头的文件进行批处理重新编号,windows,batch-file,cmd,Windows,Batch File,Cmd,我经常使用这个批处理脚本来使用ImageMagick并排整理图像,它很好地实现了这一目的,除非我面对的是文件名以数字开头的图像 例如: ThisImage1.JPG ThisImage2.JPG ... ThisImage6.JPG 将首先重命名为: A1.JPG A2.JPG ... A6.JPG 然后将2乘2整理成: B1.JPG B3.JPG B5.JPG 但如果图像最初命名为: 111.JPG 112.JPG ... 116.JPG 然后,初步重命名为: A2.JPG A3.JP
ThisImage1.JPG
ThisImage2.JPG
...
ThisImage6.JPG
将首先重命名为:
A1.JPG
A2.JPG
...
A6.JPG
然后将2乘2整理成:
B1.JPG
B3.JPG
B5.JPG
但如果图像最初命名为:
111.JPG
112.JPG
...
116.JPG
然后,初步重命名为:
A2.JPG
A3.JPG
...
A7.JPG
这当然是个错误
这能解决吗
我的批处理脚本:
SETLOCAL EnableDelayedExpansion
SET IMCONV="%PROGRAMFILES%\ImageMagick-7.0.4-Q16\Convert"
SET COUNT=0
setlocal ENABLEDELAYEDEXPANSION
FOR /R %%T IN (*.jpg) DO (
SET /A COUNT=!COUNT!+1
REN %%T A!COUNT!.jpg
)
:EOF
@echo off
set count=0
for %%x in (*.jpg) do set /a count+=1
set /a demi=%count% / 2
FOR /L %%x IN (1,2,%count%) DO (
set /a y = %%x + 1
%IMCONV% A%%x.jpg A!y!.jpg +append B%%x.jpg
)
endlocal
这似乎不是一个错误;您正在尝试递增字符串中的最后一个数字,并将字符串的其余部分更改为其他内容。
11
变为A
。您希望得到什么输出?我正在尝试再次获得A1,因为程序的后一部分需要将A1整理为A2,而不是A2整理为A3…我不清楚您的批处理,第一批将所有jpg从当前文件夹迭代到所有子文件夹(并留下计数)。第二个仅在当前文件夹中计数。如果要计算出不均匀的结果,则应使用set/A even=count/2*2
。否则,jpg文件以前的命名对新命名没有影响。bash按字母顺序而不是数字顺序列出文件。因此,也许可以将前导零添加到编号的文件中,而不是在(*.jpg)do(中为[/R]%T使用来枚举循环中重命名的文件,您应该使用for/F“delims=“%%T in('dir[/S]/B/A:-D“*.jpg”)do(
),否则您可能会在[/R]中遇到麻烦
在处理文件之前不会完全枚举所有文件,但/F的方法会这样做;有关详细信息,请参阅。。。