web-dev-qa-db-ja.com

ファイル名の先頭に追加

次のようなバッチファイルを使用して、フォルダ内のすべてのmp3ファイルにWord [Replay]を追加しようとしています。

@echo off
for %a in (c:\folder\*.mp3) do ren %a [Replay]%a

ただし、ファイルの名前は変更されません。

グーグルで試したすべての例では、Wordが追加されていますが、ファイル名の次の文字にまたがっています。文字を重ねずに、最初にWordを追加するだけです。

何かご意見は?

4
TonalDev

バッチファイルには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
6
Dennis