我有一个包含png文件的目录,我需要从最旧到最新排序,然后用一个包含递增数字后缀的名称重命名,该后缀总是4位数,例如。第一个文件是'file_0001.png',第一千个文件是'file_1000.png'。
使用我在网上搜索到的一些代码(包括我在这里找到的一些代码),我首先编写了一个包含以下内容的批处理文件:
setlocal enabledelayedexpansion
set "count=1"
for /f "delims=*" %%f in ('dir /b /o:d /tc *.png') do (
ren %%f file_!count!.png
set /a count+=1
)
这工作,但文件名的数字部分没有格式化,因为我需要它。因此,我尝试通过添加另一个变量来适应上面的内容,该变量是从递增计数变量派生的,然后只包含重命名文件时需要的4位数:
setlocal enabledelayedexpansion
set count=1
for /f "delims=*" %%f in ('dir /b /o:d /tc *.png') do (
set "fcount=000000!%count%"
ren %%f file_!fcount:~-4!.png
set /a count+=1
)
当我运行这个程序时,它正确地重命名了第一个文件,但是我得到一个错误,说存在重复的文件名或者找不到文件,所以我认为第4行一定有问题,导致它没有正确地增加:
set "fcount=000000!%count%"
有谁能告诉我我做错了什么吗?
1条答案
按热度按时间lymnna711#
你就在不远处试试这个: