For loop 使用cmd重命名多个文件

For loop 使用cmd重命名多个文件,for-loop,cmd,file-rename,For Loop,Cmd,File Rename,我正在尝试使用CMD提示符重命名文件夹中的多个文件。以下代码重命名为file1,file2,。。。但是我想从一个中间值追加,比如file51,file52 SET /a "#=" FOR %_ IN (*) DO ( CALL SET /A "#=#+1" CALL REN "%~f_" "file%#%.jpg" ) 如果我在第一行中使用SET/a“#=51”,它将对每个循环执行,每次都将值初始化为51。

我正在尝试使用CMD提示符重命名文件夹中的多个文件。以下代码重命名为
file1
file2
,。。。但是我想从一个中间值追加,比如
file51
file52

SET /a "#="
FOR %_ IN (*) DO (
  CALL SET /A "#=#+1"
  CALL REN "%~f_" "file%#%.jpg" )
如果我在第一行中使用
SET/a“#=51”
,它将对每个循环执行,每次都将值初始化为
51

我漏掉了什么?

部分
%#%
应该是
%^#%
(假设没有名为
^#
的变量)。那么第一个
调用
就没有必要了,您应该从第一行中删除
/a
,或者将值
0
,以避免
缺少操作数。
错误。像这样吗?在(*)DO中为%u设置“#=”(设置“#=#+1”CALL REN“%~f#”“file%^#%.jpg”)这将仅将第一个文件重命名为file%^#%.jpg。对于其他文件,“存在重复文件名”错误被抛出。嗯……不,您在第二个
set
命令中错过了
/A
,该命令是必需的…