- ベストアンサー
フォルダ内のファイル名を一括変更したい
windows10を使っています。 指定したフォルダ内のファイル名を一括変更したいです。 具体的には、以下のようにファイル名内の空白を「_」に置換したいです。 変更前:スクリーンショット 2021-01-01 104535.jpg ↓ 変更後:スクリーンショット_2021-01-01_104535.jpg バッチファイルで手軽に実行できるとうれしいです。 やりたいことの具体例: 空白置換.batを実行したら、空白置換.batが置いてあるフォルダ内のファイル名が一括変更できる。 空白置換.bat内で、変更対象とする拡張子を指定できる。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
テストしてませんが、 pushd フォルダー名 for %%A in (*.jpg) do call :rename "%%~A" popd exit /b :rename set A=%1 ren %1 %A: =_%
その他の回答 (2)
- suiton
- ベストアンサー率21% (1110/5263)
自分はフリーソフトの「ファイル名変更君」を使用しています。 ご希望のとおりの置換が可能かどうかは未確認ですが、重宝しています。
お礼
教えていただいたフリーソフトを使用すると、いろいろ便利にファイル名が変更できそうですね。 今回(ファイル名内の空白置換)は別の方法を使うことにしましたが、別の用途(もっと複雑な変更をしたい時)に使ってみることがあるかもしれません。 よさそうなソフトの紹介を、ありがとうございました。
- m5048172715
- ベストアンサー率16% (860/5261)
最後は、計算表ソフトウエアを使って、ファイル名変更バッチファイルを生成かな。他に有効な回答が無い場合の、最後の手段ね。
お礼
同じような発想で、「コマンドプロンプトでファイル名を取得→エクセルを使ってファイル名変更のコマンドを作成→コマンドプロンプトにコマンドをコピペで実行」というのが、今までやっていた手順でした。 今回、もっと手軽にできないかなぁと思い、質問してみました。 回答ありがとうございました。
お礼
今回、バッチが置いてあるフォルダ内のファイル名を一括変更したかったので、調べて1行目を変更し、以下のようにして使ってみました。 -- pushd %~dp0 for %%A in (*.jpg) do call :rename "%%~A" popd exit /b :rename set A=%1 ren %1 %A: =_% -- お陰様で、思っていた結果が得られました。 これで、手軽に空白を含まないファイル名に変更できます。 ベストアンサーとさせていただきます。 ありがとうございました。