【bat】バッチファイルで特定の拡張子だけをまとめて移動する方法

【bat】バッチファイルで特定の拡張子だけをまとめて移動する方法 bat

フォルダ内のファイルを整理する際、特定の拡張子(例:.jpg や .txt)のファイルだけを別のフォルダへ移動したいというケースはよくあります。
バッチファイル(.bat)を使えば、この作業をワンクリックで自動化することが可能です。

今回は、指定した拡張子のファイルだけを一括で移動する方法を解説します。

基本構文 特定の拡張子のファイルを移動

以下は、.jpgファイルをまとめて「images」フォルダへ移動するバッチファイルの例です。

@echo off

rem 移動先フォルダを定義(なければ作成)
set DEST=images
if not exist %DEST% (
  mkdir %DEST%
)

rem 対象拡張子を指定して一括移動
move *.jpg %DEST%
  • *.jpg:カレントディレクトリ内のすべてのjpgファイルを対象にしています。
  • move:ファイルを移動するコマンドです。
  • mkdirとif not existで、移動先フォルダが存在しない場合に自動作成します。

拡張子を変えて汎用化する方法

他の拡張子(例:.txt や .csv)にも対応するには、*.xxxの部分を変更するだけです。

move *.txt text_files
move *.csv csv_files

フォルダ名も適宜変更してください。

複数の拡張子に対応させる

ひとつのバッチファイルで複数種類のファイルをそれぞれのフォルダへ振り分けることも可能です。

@echo off

rem .jpgファイルを移動
if not exist images (
  mkdir images
)
move *.jpg images

rem .txtファイルを移動
if not exist texts (
  mkdir texts
)
move *.txt texts

サブフォルダを含めて処理したい場合

for /rを使えば、サブフォルダを再帰的に探索してファイルを移動できます。

@echo off

set DEST=all_images
if not exist %DEST% (
  mkdir %DEST%
)

for /r %%f in (*.jpg) do (
  move "%%f" %DEST%
)

注意:このコードはバッチファイル内で使用する場合です。コマンドプロンプトで直接実行する場合は%%fを%fに変えてください。

まとめ

バッチファイルを使えば、手作業でのファイル整理を大幅に効率化できます。
特定の拡張子のファイルだけをまとめて移動することで、日々の業務やデータ管理がスムーズになります。

整理したい拡張子やフォルダ構成に応じて、ぜひ活用してみてください。