質問: 13621 * 100/32768 + 1 ren "country-132.mp3" 。mp ) ファイル名が重複しているか、ファイル 見つからない。 ご覧のとおり、%num%は3行目のファイル名に展開されていません .. ..私は何をする必要がありますか?更新-何が起こっているのか正確にはわかりませんが、エコーに空白のフィールドが表示されていても、これは機能しているようですsetlocal enabledelayedexpansion for %%a in (*.mp3) do ( set /a num=!random! echo !num! ren "%%a" !num!.mp3 ) pause
回答: 乱数がすでに選択されている場合、同じ名前のファイルはありますか?一般的にはそうです。そのため、このような状況では、ファイルの名前を一意の名前/番号に変更するために、別の乱数を取得する必要があります。ファイルの名前を変更するときに繰り返しの可能性を回避して、小数点以下2桁の範囲をさらに広げることをお勧めしますか?@echo off & setlocal enabledelayedexpansion for /f tokens^=* %%a in ('dir /on/b *.mp3')do call :^) "%%~dpa" "%%~nxa" exit /b :^) for /f %%f in ('set /a _num^=!random!*1000/32768+1')do set "_num=100%%f" if not exist "%~1!_num:~-4!.mp3" ren "%~1%~2" "!_num:~-4!.mp3" & exit /b goto :^) 限られた英語でごめんなさい!