ファイル名の先頭に追加

ファイル名の先頭に追加

次のようなバッチ ファイルを使用して、フォルダー内のすべての 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

関連情報