本文へスキップ
BecomeCoder

バッチファイルコース · 第5章 ファイル操作と実践 · レッスン16

ファイルとフォルダを操作する

導入

バッチが最も得意とするのが、ファイルのコピー・移動・削除といった操作の自動化です。よく使うコマンドをまとめて押さえましょう。

説明

主要なファイル操作コマンドです。

  • dir … ファイル・フォルダの一覧を表示
  • mkdirmd)… フォルダを作る
  • copy … ファイルをコピー
  • move … ファイルを移動する/名前を変える
  • delerase)… ファイルを削除
  • rmdirrd)… フォルダを削除
  • ren … 名前を変える
@echo off
rem 作業フォルダを用意
mkdir backup 2>nul

rem テキストファイルをまとめてコピー
copy *.txt backup\

rem 1つのファイルを移動
move old.log archive\

echo バックアップと整理が終わりました

copy *.txt backup\ のように ワイルドカード * を使うと、条件に合うファイルをまとめて処理できます。mkdir backup 2>nul2>nul は「フォルダが既にあるときのエラー表示を捨てる」おまじないです(リダイレクトは次のレッスンで扱います)。

フォルダごとまるごとコピーしたいときは、copy ではなく xcopyrobocopy を使います。特に robocopy は差分コピーや再試行に強く、バックアップ用途で定番です。

@echo off
rem source フォルダの中身を dest へまるごとコピー(サブフォルダも)
robocopy source dest /e

del は取り消せない del で消したファイルは ごみ箱を経由せず に消えます。ワイルドカードでの一括削除(del *.tmp など)は特に、対象を確かめてから実行しましょう。心配なときは、まず dir *.tmp で「何が消えるか」を一覧して確認するのが安全です。

やってみよう

mkdir でフォルダを作り、copy でそこへファイルを1つコピーするバッチを書いてみましょう。実行前後で dir を打つと、変化が確認できます。