次のようなバッチファイルを使用して、フォルダ内のすべてのmp3ファイルにWord [Replay]を追加しようとしています。
@echo off
for %a in (c:\folder\*.mp3) do ren %a [Replay]%a
ただし、ファイルの名前は変更されません。
グーグルで試したすべての例では、Wordが追加されていますが、ファイル名の次の文字にまたがっています。文字を重ねずに、最初にWordを追加するだけです。
何かご意見は?
バッチファイルには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