Windowsのbatファイルでできること整理
最近はChatGPTやClaudeなどのAIにプログラムを書いてもらい、日々の業務やパソコン作業を自動化する人が増えています。
自動化というとPythonやPowerShellが思い浮かびますが、「環境構築の手間を省きたい」「作成したツールをダブルクリック一発で動かしたい」という場合に最も手軽で相性が良いのが、Windows標準のbat(バッチ)ファイルです。
AIに「〇〇するbatファイルを作って」と指示するだけで、特別な設定をすることなくすぐに動くツールが完成します。また、AIで作成したPythonスクリプトやAPI連携ツールをバックグラウンドで起動する「ランチャー(指示役)」としてもbatファイルは非常に優秀です。
この記事では、AIを活用して自動化ツールを作りたい人に向けて、batファイルで何ができるのかを機能別の表形式でまとめました。
1. ファイルとフォルダの基本操作
日常的なファイル操作や整理作業は、batファイルで一括処理できます。
| コマンド名 | 使用例 | 解説 |
|---|---|---|
| mkdir | mkdir C:\WorkFolder | 指定したパスに新しいフォルダを作成します。 |
| rmdir | rmdir /s /q C:\TempFolder | フォルダとその中のファイルやサブフォルダをまとめて削除します。 |
| del | del /f /q C:\Temp*.tmp | 指定した条件に一致するファイルを削除します。 |
| copy | copy C:\Data*.txt C:\Backup\ | ファイルを別のフォルダへコピーします。 |
| move | move C:\Downloads*.pdf C:\Docs\ | ファイルやフォルダを別の場所へ移動します。 |
| ren | ren old_name.txt new_name.txt | ファイル名やフォルダ名を変更します。 |
| dir | dir /b C:\Data > list.txt | フォルダ内のファイル一覧を取得してテキストファイルに出力します。 |
| robocopy | robocopy C:\Source D:\Backup /MIR | 高速なファイルコピーや、フォルダ間の完全同期を行います。 |
| xcopy | xcopy C:\Data D:\Backup /E /H /Y | サブフォルダや隠しファイルも含めてまとめてコピーします。 |
2. アプリ・プロセスの起動と制御
複数のアプリを一括起動したり、特定のプロセスを強制終了させたりする自動化が可能です。
| コマンド名 | 使用例 | 解説 |
|---|---|---|
| start | start chrome.exe https://example.com | アプリケーションやWebサイトを起動します。 |
| taskkill | taskkill /im excel.exe /f | 指定した実行中のアプリやプロセスを強制終了します。 |
| tasklist | tasklist /fi "imagename eq chrome.exe" | 現在実行されているプロセスの一覧を表示・検索します。 |
| timeout | timeout /t 10 /nobreak | 指定した秒数だけ処理の進行を一時停止します。 |
| pause | pause | キー入力があるまで処理を一時停止し、画面を保持します。 |
| exit | exit /b 0 | バッチファイルの実行を終了し、終了コードを返します。 |
3. システム情報取得とネットワーク操作
Windowsのシステム状態確認や、ネットワーク接続のテスト、PC制御を行えます。
| コマンド名 | 使用例 | 解説 |
|---|---|---|
| ipconfig | ipconfig /all | IPアドレスやDNS設定などのネットワーク情報を表示します。 |
| ping | ping 192.168.1.1 | 指定した機器へのネットワーク導通を確認します。 |
| systeminfo | systeminfo > sysinfo.txt | OSのバージョンやメモリ量などのシステム情報を取得します。 |
| shutdown | shutdown /r /t 60 | 指定した時間(秒)の経過後にPCを再起動またはシャットダウンします。 |
| net start / net stop | net stop "Spooler" | Windowsのバックグラウンドサービスを開始または停止します。 |
| reg | reg query "HKCU\Software\App" | Windowsレジストリ情報の参照、追加、変更を行います。 |
4. 変数・制御構文・ロジック処理
batファイル内での値の保持、条件分岐、繰り返し処理を記述できます。
| コマンド名 | 使用例 | 解説 |
|---|---|---|
| set | set TARGET_DIR=C:\Data | 変数の定義や値の代入、計算を行います。 |
| set /p | set /p INPUT=入力してください: | ユーザーからのキーボード入力を受け取り変数に格納します。 |
| if | if exist "config.ini" ( echo あり ) | ファイルの存在や文字列比較による条件分岐を行います。 |
| for | for %%i in (*.txt) do ( echo %%i ) | ファイル一覧や数値範囲を対象に繰り返し処理を実行します。 |
| goto / :label | goto :END | 指定したラベルの行へ処理をジャンプさせます。 |
| call | call sub_script.bat | 別のバッチファイルや定義したサブルーチンを呼び出します。 |
| rem / :: | rem ここはメモ書きです | 実行されないコメント文をスクリプト内に記述します。 |
| echo | echo メッセージ | 画面にテキストを表示したり、@echo offでコマンド自体の非表示化を行います。 |
5. 出力制御と他言語・スクリプト連携
処理結果のログ保存や、PowerShell・Pythonなどの外部ツールとの連携ができます。
| コマンド名 | 使用例 | 解説 |
|---|---|---|
| > / >> | echo %date% %time% >> app.log | 実行結果をテキストファイルに新規作成(>)または追記(>>)します。 |
| powershell | powershell -Command "Get-Service" | Bat内からPowerShellのコマンドやスクリプトを呼び出して実行します。 |
| python | python main.py | Pythonスクリプトを起動し、複雑なデータ処理などを委託します。 |
batファイル運用の注意点
batファイルは手軽ですが、以下の点に配慮して作成する必要があります。
文字コードの制限
日本語を含める場合、文字コードをUTF-8ではなく「Shift-JIS(ANSI)」で保存しないと文字化けが発生します。
複雑な処理の切り分け
JSONやXMLの解析、複雑な画面描画、高度な例外処理が必要な場合は、batファイル単体ではなくPowerShellやPythonの利用を検討する方が効率的です。
単純な定型作業やツール起動のランチャーとしては、現在でも非常に有用な手段と言えます。