【Windows機能】バッチファイルとは?できること・作り方・実行時の注意点
バッチファイルは、Windowsのコマンドをまとめて実行するためのテキストファイルです。同じフォルダーを作る、ファイルをコピーする、複数のツールを起動する、といった繰り返し作業に使えます。
まずは文字を表示するだけの小さなBATを作って、仕組みをつかみましょう。
バッチファイルとは?
コマンドプロンプトで入力する命令を、拡張子.batのファイルに書いたものです。実行するとcmd.exeが内容を読み取り、通常は上から順に処理します。ifやforを使えば、条件分岐や繰り返しもできます。
「バッチ処理」は作業をまとめて処理する方式、「バッチファイル」はその処理をWindowsのコマンドで書いたファイルです。バッチ処理そのものは、BAT以外の言語や仕組みでも実現できます。
バッチファイルでできること
| やりたいこと | 使うコマンドの例 |
|---|---|
| フォルダー作成・ファイルの整理 | mkdir、copy、move、ren |
| アプリや別のBATを起動 | start、call |
| 条件に応じて処理・繰り返し | if、for |
| フォルダー構成や通信状態を確認 | tree、ping、ipconfig |
たとえば毎朝使うツールを順番に起動したり、決まったファイルを別フォルダーへコピーしたりできます。削除や上書きもできるため、最初は練習用のファイルで試すと安心です。
コマンドごとの書き方は、バッチファイルの基本コマンド一覧に短い例をまとめています。
メモ帳でBATファイルを作る3ステップ
1. コマンドを書く
メモ帳を開き、次の2行を入力します。echoは文字の表示、pauseはキー入力待ちです。ファイルの変更や削除はしません。
echo Hello World
pause
2. 拡張子を.batにして保存する
「名前を付けて保存」を開き、ファイル名をTest.bat、ファイルの種類を「すべてのファイル」にして、分かりやすい場所へ保存します。この英数字だけの例は、UTF-8(BOMなし)で保存できます。
Test.bat.txtになっていないか確認しましょう。エクスプローラーの「表示」→「表示」→「ファイル名拡張子」をオンにすると、末尾まで確認できます。Windows 11の表示例です。
3. ダブルクリックして実行する
保存したTest.batをダブルクリックします。コマンドの表示に続いて「Hello World」とキー入力待ちのメッセージが出れば、2行が実行されています。何かキーを押すと処理が終わります。
内容を直すときは、メモ帳からTest.batを開いて編集・保存します。ダブルクリックは編集ではなく実行なので、開き方を使い分けてください。
向いていないこと・別の方法を選びたい場面
| 場面 | 考え方 |
|---|---|
| 複雑なデータ処理や長い条件分岐 | BATでも工夫できますが、保守しにくくなります。PowerShellやPythonなどを検討します。 |
| ボタンや入力フォームのある画面 | BAT自体にはGUIを作るための標準機能がありません。GUIアプリを呼び出すことはできます。 |
| 複雑な例外処理 | BATにはtry/catch構文がありません。終了コードを確認して分岐させます。 |
| Mac・Linuxでも同じ処理を実行 | Windowsのcmd.exe向けなので、そのままの動作は前提にできません。各環境に合うスクリプトを選びます。 |
「できない」と「作れるけれど扱いづらい」は別です。数個のコマンドをつなぐ用途ならBATは手軽ですが、機能が増えたら読みやすさや保守のしやすさで選び直しましょう。
実行前に確認したい3つのこと
削除・上書きは対象を確かめる
delで削除したファイルはゴミ箱に入りません。知らないBATは、実行する前にメモ帳で内容を確認してください。pauseは一時停止するだけで、処理を安全にする機能ではありません。キーを押せば続きが実行されます。
削除や移動を組み込む前に、対象を一覧表示して確認し、練習用フォルダーで試しましょう。
BATの保存場所と作業フォルダーを区別する
相対パスは、その時点の作業フォルダーを基準に解釈されます。BATが置かれたフォルダーと常に同じとは限りません。起動方法によって変わるため、ローカルのBAT自身の場所を基準にするなら次のように指定します。
@echo off
cd /d "%~dp0"
if errorlevel 1 exit /b 1
echo Ready.
pause%~dp0はBAT自身のドライブとフォルダー、cdの/dはドライブも切り替える指定です。引用符で囲むと空白を含むパスも扱えます。移動に失敗した場合はexit /bでBATを終了します。ネットワーク共有のUNCパスにはpushd/popdを使う方法があります。
権限は必要な処理にだけ付ける
通常の文字表示や、自分の作業フォルダー内の操作に管理者権限は不要です。システム設定の変更などで必要になった場合だけ、処理内容を確認したうえで「管理者として実行」を選びます。権限不足の原因を確かめずに、すべてのBATを管理者で動かす必要はありません。
動かない・文字化けするときの確認表
| 症状 | 最初に確認すること |
|---|---|
| メモ帳で開く/実行できない | 拡張子が.bat.txtになっていないか。 |
| 一瞬で画面が閉じる | 開いたコマンドプロンプトから実行して、エラー表示を読む。pauseはそこまで到達した場合にだけ止まります。 |
| ファイルが見つからない | 作業フォルダーと対象パス、空白を囲む半角の引用符を確認。 |
| 日本語が文字化けする | 保存した文字コードと、コマンドプロンプトのコードページを確認。 |
| エラーの後も処理が続く | 終了コードを確認して分岐する処理があるか。コマンドごとに終了コードの意味は異なります。 |
文字コードはWindowsのバージョンだけで決めない
日本語を含めるときは、ファイルの文字コードと読み取る側の設定を合わせます。chcpだけを実行すると現在のコードページを確認できます。日本語環境の932はWindowsの日本語コードページ、65001はUTF-8です。
UTF-8(BOMなし)のBATで日本語を扱う場合は、先頭の英数字行でchcp 65001に切り替える方法があります。ただし、呼び出す外部ツールもUTF-8に対応しているか確認してください。メモ帳の「ANSI」は環境依存なので、Windows 11だから必ずANSI、または必ずUTF-8、とは言い切れません。
まずは小さな処理から始めよう
最初は「文字を表示する」だけで十分です。動きを確認できたら、フォルダー作成やコピーなど、必要な処理を1つずつ追加していきましょう。
具体的な書き方は、目的別の基本コマンド一覧と実行例を参考にしてください。
仕様の確認:cmd、chcp、cd、if、exit、del(Microsoft Learn)
サイトアイコン-2-150x150.png)