次のコマンドは、ファイル名のみを変更し、フォルダーは変更しません。
for %a in (*) do ren "%a" "00_%a"
for %a in (*) do ren "%a" "00_%a"
ノート:
for
を使用することはお勧めしません。cmd
シェルで以下を使用します。
for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"
バッチファイル(置換%
と%%
):
for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"
注意:
使用するのは重要です
FOR /F
で、単純なFOR
ではありません。
FOR /F
は、反復を開始する前にDIR
コマンドの結果全体を収集しますが、単純なFOR
は、内部バッファーがいっぱいになった後に反復を開始します。これにより、同じファイルの名前を複数回変更するリスクが追加されます。
dbenham によるアドバイス 複数のファイル名の末尾に「テキスト」を追加する への回答
ファイルではなくフォルダー(ディレクトリ)でこのForループを実行するには、単に_/D
_スイッチを含めます。
for /D %a in (*) do ren "%a" "00_%a"
_for /?
_から:
FOR/D%variable IN(セット)DOコマンド[コマンドパラメータ]
_If set contains wildcards, then specifies to match against directory names instead of file names.
_