Windows環境で定期的なバックアップやログ整理、ファイル送信などを自動化したい場合、バッチファイルとタスクスケジューラの組み合わせが非常に便利です。
本記事では、バッチファイルを作成し、それをWindowsタスクスケジューラに登録して定期実行する方法について、具体的な手順と注意点を交えて解説します。
1. 実行したい処理をバッチファイルで用意
まずは自動で実行したい処理内容を .bat
ファイルとして作成します。
例:特定フォルダのファイルを日付付きでバックアップ
@echo off
setlocal
set DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
set SRC=C:\MyFolder
set DEST=C:\Backup\%DATE%
mkdir "%DEST%"
xcopy "%SRC%\*" "%DEST%\" /s /e /y
endlocal
このスクリプトは、実行日ごとにバックアップフォルダを作成し、指定フォルダの内容をコピーします。
2. タスクスケジューラを起動
スタートメニューから「タスク スケジューラ」と検索し、起動します。
新しいタスクの作成手順
- 右側の「基本タスクの作成」をクリック
- 名前と説明を入力(例:毎日バックアップ)
- 「トリガー」で実行タイミングを設定(毎日・毎週など)
- 「操作」で「プログラムの開始」を選択
- 「プログラム/スクリプト」欄に
C:\Scripts\backup.bat
などのパスを入力 - 確認して完了
3. 作成したタスクをテスト実行
タスク一覧から対象のタスクを右クリックし、「実行」を選ぶことで、バッチファイルが正常に動作するか確認できます。
必要に応じて「最上位の特権で実行」にチェックを入れておくと、管理者権限が必要な操作も安定して動作します。
4. よくあるエラーと対処法
- バッチファイルが実行されない
→ パスに全角文字やスペースが含まれていないか確認。絶対パスで記述。 - コピー処理が失敗する
→xcopy
のオプション不足やアクセス権限に注意。 - ログ出力でデバッグしたい
→> backup_log.txt 2>&1
をバッチの末尾に追加すると、ログに記録できます。
5. タスク登録をバッチファイルで自動化(上級者向け)
以下のように schtasks
コマンドを使うと、タスクの登録そのものもバッチで自動化できます。
schtasks /Create /TN "DailyBackup" /TR "C:\Scripts\backup.bat" /SC DAILY /ST 02:00 /RL HIGHEST
この例では、毎日2:00にバックアップ処理を実行するタスクを作成しています。
まとめ
バッチファイルとWindowsタスクスケジューラを連携させることで、定期的な処理を自動化でき、手間とヒューマンエラーの削減に大きく貢献します。
- バッチファイルで処理内容を明確に定義
- タスクスケジューラで実行タイミングを柔軟に制御
schtasks
による自動登録も可能
日次バックアップやファイル整理など、定型業務の自動化にぜひ取り入れてみてください。