通过在文件名中间插入字符串来重命名

通过在文件名中间插入字符串来重命名

我有一个初始文件: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 文件。

相关内容