「Windowsの作業を自動化したい」「毎日同じ操作を繰り返すのを楽にしたい」そんなときに役立つのがバッチファイルです。この記事ではバッチファイルとは何か・PowerShellとの違い・どんなことができるかを初心者向けにわかりやすく解説します。
バッチファイルとは何か?
バッチファイルとは、Windowsのコマンドプロンプト(cmd.exe)で実行できるコマンドをテキストファイルにまとめたものです。拡張子は .bat または .cmd で、ダブルクリックするだけで複数のコマンドを自動で順番に実行できます。
たとえば「特定のフォルダをバックアップしてログファイルに記録する」という3〜4ステップの作業を、バッチファイルにしておけばダブルクリック1回で完了します。
バッチファイルでできること
| 用途 | 具体例 |
|---|---|
| ファイル・フォルダ操作の自動化 | 毎日のバックアップ、古いログファイルの自動削除 |
| システム管理 | サービスの起動・停止、レジストリの設定変更 |
| 定期実行 | タスクスケジューラと組み合わせて夜間に自動実行 |
| 環境構築 | PCセットアップ時のソフト一括インストール・設定 |
| 業務効率化 | 複数ファイルの一括リネーム、CSV処理 |
バッチファイル vs PowerShell — どちらを使うべきか?
| 比較項目 | バッチファイル(.bat) | PowerShell(.ps1) |
|---|---|---|
| 歴史・互換性 | MS-DOS時代から存在。どの環境でも動く | 2006年登場。新しい環境向け |
| 学習コスト | 低い。書き方がシンプル | 高い。オブジェクト指向の概念が必要 |
| できること | 基本的なファイル操作・コマンド実行 | .NET連携を含む高度な処理 |
| 実行ポリシー | 不要。すぐ動く | セキュリティ設定が必要な場合あり |
| 向いている用途 | シンプルな自動化・レガシー環境 | 複雑な処理・システム管理 |
結論:「ファイルのバックアップ」「定期的なログ削除」などシンプルな自動化はバッチファイルが最適です。複雑なデータ処理や.NETとの連携が必要になったらPowerShellへ移行を検討しましょう。
バッチファイルの仕組み
バッチファイルを実行すると、Windowsは cmd.exe を起動してファイルの内容を1行ずつ順番にコマンドとして実行します。エラーが起きても(設定しなければ)次の行に進み続けます。
@echo off
rem これは最初のバッチファイルです
echo こんにちは!バッチファイルの世界へようこそ。
echo 今日の日付: %DATE%
echo 現在時刻: %TIME%
pause上のコードをメモ帳に貼り付けて hello.bat という名前で保存し、ダブルクリックして実行してみましょう。コマンドプロンプトのウィンドウが開き、文字が表示されます。
バッチファイルの作り方(手順)
- メモ帳(または任意のテキストエディタ)を開く
- コマンドを入力する
- 「ファイル → 名前を付けて保存」を選択
- ファイル名を
test.batのように.bat拡張子にする - 文字コードを ANSI(Shift-JIS) に設定して保存(日本語を使う場合に重要)
- 保存したファイルをダブルクリックして実行
注意:文字コードをUTF-8で保存すると、日本語のecho文が文字化けします。日本語を使う場合は必ずANSI(Shift-JIS)を選んでください。
このシリーズで学べること
| # | テーマ | 内容 |
|---|---|---|
| 2 | 基本命令 | echo・pause・rem・@echo offの使い方 |
| 3 | 変数 | set・%変数%・環境変数・遅延展開 |
| 4 | 条件分岐 | if文・文字列/数値/ファイル比較 |
| 5 | ループ | for文でファイル・数値・CSVを処理 |
| 6 | ファイル操作 | copy・move・del・robocopy |
| 7〜19 | 実践テクニック | 文字列処理・日時・エラー処理・自動化など |
| 20 | チートシート | 全コマンド逆引き辞典 |
まとめ
- バッチファイルはcmd.exeで動くコマンドの集まりで、拡張子は.batまたは.cmd
- ダブルクリックするだけで複数のコマンドを自動実行できる
- シンプルな自動化にはバッチファイル、複雑な処理にはPowerShellが向いている
- 日本語を使う場合はANSI(Shift-JIS)で保存する
私がバッチファイルを初めて書いたのは、毎朝行っていた「特定フォルダのファイルを日付フォルダにコピーする」作業を自動化したかったからです。5行のバッチファイルで毎朝10分かかっていた作業が0秒になった感動は今でも覚えています。
hobbyshift管理人



コメント