我有一个初始文件:CAR_001.dat 我旁边还有另外 3 个文件:
CAR_001_prev0.png
CAR_001_prev1.png
CAR_001_prev2.png
我正在尝试将这 3 个文件重命名为:
CAR_001_NEWSTRING_prev0.png
CAR_001_NEWSTRING_prev1.png
CAR_001_NEWSTRING_prev2.png
这是我的代码:
ren %~dpn1_prev*.png %~n1_NEWSTRING_prev*.png
我将 CAR_001.dat 放到脚本上,它就可以处理 PNG 文件。它运行正常,只是删除了编号,并且只能重命名 1 个文件,而不是 3 个
我该如何正确处理它们?
答案1
我假设只有与 *.dat 文件关联的 png 文件才应该重命名。您必须将包含 *.dat 和 *.png 文件的文件夹拖放到批处理文件中...
@echo off
set String=_banana
if /i exist "%~1\" (set "Folder=%~1") else (exit)
pushd "%Folder%"
for /f "delims=" %%a in ('dir /b *.dat') do For /f "Delims=" %%b in ('dir /b "%%~na"*.png') do call :Rename "%%~na" "%%b"
exit
:Rename
set "Part1=%~1"
set "Part2=%~2"
call set "Part2=%%Part2:%Part1%=%%"
ren "%~2" "%Part1%%String%%Part2%"
goto :EOF
在这个例子中,dog_cat PNG 没有被重命名,因为它们没有与其关联部分名称的 *.dat 文件。