次のようなバッチ ファイルを使用して、フォルダー内のすべての mp3 ファイルに [Replay] という単語を追加しようとしています。
@echo off
for %a in (c:\folder\*.mp3) do ren %a [Replay]%a
しかし、ファイルの名前は変更されません。
グーグルで試した例はすべて、単語を追加しますが、ファイル名の次の文字は飛び越えてしまいます。文字を飛び越えずに、先頭に単語を追加するだけで済みます。
何かご意見は?
答え1
バッチ ファイルには 3 つの問題があります。
%%a
バッチ ファイルでは、の代わりにを使用する必要があります%a
。%%a
ファイル名だけでなく、完全なパスも保持します。ファイル名にスペースが含まれている場合、名前の変更は失敗します。
一般的に、トラブルシューティング中もオンのままにしておくことをお勧めしますecho
。
代わりにこれを試してください:
cd /d c:\folder
for %%a in (*.mp3) do ren "%%a" "[Replay]%%a"
ファイル名が 2 回変更される場合は、for
ディレクトリ エントリが読み取られます。回避策として、リストを一時ファイルに保存できます。
cd /d c:\folder
dir /b *.mp3 > temp
for /f "delims=" %%a in (temp) do ren "%%a" "[Replay]%%a"
del temp