我有很多带有类似关键字的文件,例如
computer-stock-photo.jpg
computer-stock-picture.jpg
computer-picture.jpg
我想要做的是给连续的 2 位数字添加后缀,例如
computer-stock-photo-01.jpg,
computer-stock-picture-02.jpg,
computer-picture-03.jpg
此外,批处理脚本应该适用于任何扩展名,如 jpg 或 png。
我尝试过的脚本:
@echo off
setlocal disableDelayedExpansion
set "chars=0123456789"
for /f "eol=: delims=" %%F in ('dir /b /a-d *.jpg') do call :renameFile "%%F"
exit /b
:renameFile
setlocal enableDelayedExpansion
:retry
set "name="
for /l %%N in (1 1 8) do (
set /a I=!random!%%36
for %%I in (!I!) do set "name=!name!!chars:~%%I,1!"
)
echo if exist !name!.jpg goto :retry
endlocal & ren %1 %name%.jpg
上述脚本仅适用于 jpg 并且添加随机数而不是序列数。
答案1
如果您想让别人帮您编写一个脚本来实现您的目的,我相信您会想在 Stack Overflow 上发布这个问题。为了遵循此论坛的大纲,我将为您提供一个名为 Bulk Rename Utility 的程序的链接。它过去曾被其他 Stack Exchange 用户推荐过,似乎符合您的标准。
答案2
文件重命名,后缀为 01 02 03 04 等
扔掉不合适的脚本。你不需要随机数,它也不处理.png
文件。
我从头编写了一个新脚本,这比尝试修复损坏的脚本更容易。
使用以下批处理文件:
@echo off
setlocal enabledelayedexpansion
rem initialise counter
set /a "x=1"
rem process jpg and png files
for /f "usebackq tokens=*" %%i in (`dir /b *.jpg *.png`) do (
rem split into name and extension
set _name=%%~ni
set _ext=%%~xi
rem pad the counter to 2 digits
set "y=0!x!"
set "y=!y:~-2!"
rem do the rename
ren "%%i" "!_name!-!y!!_ext!"
increment counter
set /a "x+=1"
)
endlocal
限制:
- 仅限当前工作目录中的
.jpg
进程。.png
- 仅处理最多
99
文件。