2017-08-31 95 views
0

我想製作一個批處理腳本,它將進入%〜dp0 \ Playlists \%list%文件夾並將其中的每個.mp3文件重命名爲下一個數字。 例如,頂層文件將被重命名爲「1」,而第二個文件將被重命名爲「2」。我到處尋找,但我無法找出爲什麼我的代碼不起作用。使用「for」命令批量執行2條命令

set playnmbr=0 
for /f "usebackq delims=|" %%f in (`dir /b "%~dp0\Playlists\%list%"`) do (
rename %~dp0\Playlists\%list%\%%f %playnmbr%.mp3 
set /A playnmbr=%playnmbr%+1 
) 
+4

你需要[延期擴展](https://ss64.com/nt/delayedexpansion.html) – npocmaka

+0

你能告訴我一個精煉版本的代碼嗎?我在它之前添加了「SETLOCAL EnableDelayedExpansion」,它仍然不起作用。 – GoldenLizardYT

回答

0

你缺少setlocal enabledelayedexpansion(如npocmaka寫道):

setlocal enabledelayedexpansion 
set playnmbr=0 
for /f "usebackq delims=|" %%f in (`dir /b "%~dp0\Playlists\%list%"`) do (
    rename %~dp0\Playlists\%list%\%%f !playnmbr!.mp3 
    set /A playnmbr=!playnmbr!+1 
) 

此外,%list%是不是在你的代碼中定義。

+0

它工作完美!謝謝! – GoldenLizardYT

+1

只是一個建議:用'set/A playnmbr + = 1'來改變'set/A playnmbr =!playnmbr!+ 1' – Aacini