rename.bat
@echo off
setlocal enabledelayedexpansion
:: 设置默认起始编号为001
set "start_num=001"
:: 获取用户输入(支持直接回车使用默认值)
set /p "start_num=请输入起始编号(如 001 或 25,默认001):"
:: 去除前导零处理
set "input=%start_num%"
:remove_leading_zeros
if "%input:~0,1%"=="0" (
set "input=%input:~1%"
if defined input goto remove_leading_zeros
)
if not defined input set input=0
:: 转换为数字并验证
set /a "start_num=input"
if %start_num% lss 0 (
echo 错误:起始编号不能为负数。
exit /b 1
)
:: 初始化计数器
set /a counter=%start_num%
:: 创建临时文件列表(按逆序处理避免冲突)
set "temp_list=%temp%\%random%.txt"
dir /b /a-d /o-n | findstr /v /x "%~nx0" > "%temp_list%"
:: 遍历文件列表
for /f "usebackq delims=" %%f in ("%temp_list%") do (
if exist "%%f" (
:: 生成三位数编号
set num=!counter!
set padded_num=00!num!
set padded_num=!padded_num:~-3!
:: 保留扩展名并重命名
set "ext=%%~xf"
set "new_name=!padded_num!!ext!"
ren "%%f" "!new_name!"
:: 更新计数器
set /a counter+=1
)
)
:: 清理临时文件
del "%temp_list%" 2>nul
echo 文件已从%start_num%开始重命名完成!
pause