
[已解決]求助完善按指定格式批量重命名文件的批處理代碼我希望能實現(xiàn)將文件所在目錄名和連接符加在文件名前的功能,但是實際處理中處理的次數(shù)比文件多,比如文件夾下有3個文件(分別為1.ogg,2.ogg,3.ogg),批處理應該處理3次,但是實際上處理了4次,有個文件被加了2次的目錄名和連接符,如圖:我想知道我的批處理哪里寫錯了,應該要怎么改?另外如果增加一個判斷文件名中包含目錄名,如果包含則不執(zhí)行改名,這個該怎么改呢?謝謝!以下是我寫的批處理。
nclick="copycode($('code0'));">復制代碼
- @ECHO OFF
- setlocal enabledelayedexpansion
- ECHO 本批處理文件用來將文件所在目錄名和連接符加在文件名前。
- :: 將文件所在目錄名和連接符加在文件名前。
- ECHO=
- ECHO 本批處理默認設置為將ogg文件所在目錄名和連接符a加在文件名前。
- ECHO 本批處理將依次分步執(zhí)行以下命令:
- ECHO 1、設置文件擴展名。
- ECHO 2、設置連接符。
- ECHO 3、開始重命名,公式為:新文件名=目錄名+連接符+原文件名。
- ECHO=
- SET /p All=是否使用默認設置?(Y/N):
- IF %All% EQU Y (
- GOTO AllY
- ) ELSE (
- GOTO AllN
- )
- :AllY
- SET Extension=ogg
- SET Connector=a
- SET RenCommand=Y
- GOTO Start
- :AllN
- SET Extension=
- SET Connector=
- SET RenCommand=
- GOTO Start
- :Start
- :: 1、設置文件擴展名。
- IF %All% NEQ Y (
- SET /p Extension=請輸入文件擴展名:
- )
- :: IF %Extension% EQU ogg (
- :: )
- :: 2、設置連接符。
- IF %All% NEQ Y (
- SET /p Connector=請輸入連接符:
- )
- :: IF %Connector% EQU a (
- :: )
- :: 3、開始重命名,公式為:新文件名=目錄名+連接符+原文件名。
- IF %All% NEQ Y (
- SET /p RenCommand=是否開始重命名?(Y/N):
- )
- IF %RenCommand% EQU Y (
- FOR /R %%a IN (*.%Extension%) DO (
- FOR %%b IN (%%a..) DO (
- ECHO 重命名公式為:新文件名=目錄名+連接符+原文件名。
- ECHO 重命名路徑:%%a
- REN %%a %%~nxb%Connector%%%~nxa
- ECHO ----------------------------------------------------------------------
- )
- )
- )
- PAUSE

