我正在編寫可以快速運行通過根文件夾的批處理文件,我們只是說「C:\ SomeMusic \」,裏面有很多子文件夾和文件。我想要做的是重命名只是在每個文件夾中的文件,但以順序方式(例如somefile1.ext,somefile2.ext ...)批處理文件,可以索引和重命名多個子文件夾中的文件,每當循環進入新文件夾時重置索引
我現在有這個權利,但我不知道如何在循環進入一個新的目錄
SET COUNT=0
setlocal ENABLEDELAYEDEXPANSION
FOR /R %%X IN (*.mp3) DO (
SET /A COUNT=!COUNT!+1
SET FN=%%~nxX
ECHO Renamed "!FN!" to "song!COUNT!.mp3"
REN %%X song!COUNT!.mp3
)
:EOF
endlocal
PAUSE
在快速旁註重置我的櫃檯:如果我像這樣運行重命名命令,它將命名文件「song1.mp3」,「song2 .mp3「」song3.mp3「,無論他們的名字是什麼?
在您的旁註中:當然會。你說'REN %% X song!COUNT!.mp3',它將名字硬編碼爲'song' + count +'.mp3'。批處理文件完全按照您的要求進行。也許你打算使用'!FN !! COUNT!.mp3'而不是'song!COUNT!.mp3'? – 2013-03-13 01:11:06
抱歉,不清楚的是:!FN!只是在那裏顯示重命名文件的文件名,讓用戶對發生的事情有一點了解。 – AndrielChaoti 2013-03-13 01:13:46
這不會改變我的評論。 :-)這個批處理文件是*仍然*正在做你剛纔告訴它做的事情 - 將'%% X'重命名爲'song!COUNT!',這就解釋了爲什麼每個文件都被重命名爲'song' 「他們的名字曾經是「 - 你把'song'硬編碼爲每個名字的開頭。 – 2013-03-13 01:19:55