windows批量迭代文件重命名并填充0

windows批量迭代文件重命名并填充0

我一直在尝试制作这个小脚本。我基本上想向用户询问一个名字,然后在该目录中我将所有 png 重命名为名称+数字,其中数字只是一个简单的 3 位数字迭代器(000,001,002,003,...,010,... 999)

@echo off
setlocal EnableDelayedExpansion
set /P id=Enter name:
set /a i=0
for %%f in (*.png) do (
set "n=000000%i%"
set "pad=!n:~-3!"
ren %%f %id%!pad!.png
set /a "i+=1"
    )
PAUSE

由于某种原因,迭代器 i 始终为 0,因此只有 1 个文件被重命名,而其他文件没有被重命名,因为它们具有相同的名称。

我确实在网上搜索了很多,事实上我对此了解甚少(现在仍然知道),这些东西几乎是一个科学怪人,通常代码科学怪人是行不通的 :/

非常感谢

答案1

这是一个脚本,它将按连续的顺序查找所有丢失的文件:

@echo off
set count = 1208
setlocal ENABLEDELAYEDEXPANSION
FOR /L %%f in (0,1,%count%) DO (
    set "num=00000%%f"    
    set "num=!num:~-4!"
    IF NOT EXIST img!num!.png (
        echo img!num!.png
    )
) 
endlocal

请注意,在循环内部,您需要使用 !x! 而不是 %x% 来获取局部延迟变量。但循环变量本身始终由 %%x 引用。

相关内容