我编写了这个批处理文件来将一些文本附加到一组 jpeg 文件的文件名中,并提供在当前文件名之前或之后附加它们的选项。
但是由于某些奇怪的原因,在文件名之前附加时,一个文件被处理了两次,结果为 new_new_FileName.jpg,而所有其他文件只得到 new_FileName.jpg。
有趣的是,这个问题并不总是发生,并且在文件名之后附加时它总是可以正常工作。
以下是整个代码,之前或之后没有视觉差异,但结果仍然不同。谁能检查这个文件并解释我哪里错了?
帮助表示赞赏。
@ECHO off
title Rename Script
set /A count=1
:Start
cls
set /p STR=choose a string to append:
cls
echo 1. Append before
echo 2. Append after
set /p choice=I choose (1,2):
if %choice%==1 goto renameb
if %choice%==2 goto renamea
:renameB
cls
echo Appending '%STR%' before current file name.
echo.
set /A count=0
FOR %%a in (*.jpg) DO (
ren "%%~a" "%STR%%%~na%%~xa"
echo Was: %%~a Became: %STR%%%~na%%~xa
set /A count+=1
)
goto end
:renameA
cls
echo Appending '%STR%' after current file name.
echo.
set /A count=0
FOR %%a in (*.jpg) DO (
ren "%%~a" "%%~na%STR%%%~xa"
echo Was: %%~a Became: %%~na%STR%%%~xa
set /A count+=1
)
goto end
:end
echo[
echo %count% files were renamed.
echo[
echo The process in now done.
pause