我遇到了我的 if 语句(在 for 循环内)似乎不合作的问题。我想做的是:
- 遍历一堆 zip 文件并将它们重命名为 005.zip、006.zip、007.zip 等。
- 我保留了一个计数器,从 5 开始,它确定文件编号,以及一个前缀 00,以便获得 005、006 等。
- 一旦计数器达到 10,我希望前缀只是 0 而不是 00。所以当计数器为 10 时,该文件将命名为 010.zip,然后是 011.zip 而不是 0010.zip、0011.zip 等。
到目前为止,这是我所拥有的:
setlocal enableextensions enabledelayedexpansion
SET /a COUNT=5
SET FILE_PREFIX=00
SET /a MAX=10
for %%f in (*.zip) do (
if !COUNT! == !MAX! (set FILE_PREFIX=0)
ren "%%f" %FILE_PREFIX%!COUNT!.zip
set /a COUNT+=1
echo !COUNT!
)
endlocal
为什么 if 语句不起作用?文件重命名工作正常,只是 if 语句不会将 FILE_PREFIX 更改为 0。