1
@echo off
setlocal EnableDelayedExpansion
set i=0
for %%X in (*.jpg;*.png) do (
    set ext=%%~xX
    set /a i+=1
    set num=0000!i!
    set name=!num:~-3!
    copy "%%X" "!name!!ext!"
)

这是我整理的一个批处理文件,用于重命名一些已填充为 3 位数字(001、002、...)的图像。如果文件夹中有超过 999 个文件,则只需进入并更改填充是微不足道的,但让脚本计算所需的填充可能会更有效。

我正在尝试执行以下操作

1 - 获取当前目录中的文件数
2 - 将其设置为填充并照常进行

我怎样才能做到这一点?

4

1 回答 1

0

你需要两个循环,在第一个循环中你只得到你的文件数和计数器的字符串长度。

然后将其设置为变量 ex。

set padLength=%stringLenOfCounter%

然后你只需要将你的第二个循环更改为

for %%X in (*.jpg;*.png) do (
    ...
    set name=!num:~-%padLength%!
    ...
)
于 2012-09-05T15:10:56.697 回答