如何使用 BAT 脚本重命名具有不同扩展名的顺序选择的文件?

How to rename sequentially selected files with different extensions using a BAT script?

我需要一个 BAT 脚本,它可以按顺序重命名 selected 具有不同扩展名的文件。此外,从 1 到 9 的数字应该用两个零填充,从 10 到 99 的数字应该用两个零填充。

它应该像这样工作:我 select 来自 Windows Explorer 的一些文件,然后我从上下文菜单调用这个脚本,然后它应该问我起始编号(从哪里编号开始),那么它应该按顺序重命名 selected 文件。

例如

INPUT:
abc.txt
fghdhsk.jpg
khdfyl.jpg
pjdhfjshk.mp3
zhdsghjfj.png

Starting number: 2

OUTPUT:
002.txt
003.jpg
004.jpg
005.mp3
006.png

到目前为止,我找到了这个更简单的脚本,但重命名了所有内容(不仅是 selected 文件),它不要求起始编号,也不添加填充零:

@echo off
set /p start=Starting number: 

setlocal enableDelayedExpansion

for /r %%g in (*.*) do (call :RenameIt %%g)
goto :eof
goto :exit

:RenameIt
echo Renaming "%~nx1" to !start!%~x1
ren "%~nx1" !start!%~x1
set /a start+=1
goto :eof

:exit
exit /b

有人知道如何修改这个脚本吗?

测试这个批处理文件:

@echo off
set /p "start=Starting number: "
:loop
set "num=00%start%"
set "num=%num:~-3%"
ren "%~1" "%num%%~x1"
set /a start+=1
shift
if not "%~1"=="" goto :loop