【bat】バッチファイルでWindowsタスクスケジューラと連携して定期処理を自動化する方法

【bat】バッチファイルでWindowsタスクスケジューラと連携して定期処理を自動化する方法 bat

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. タスクスケジューラを起動

スタートメニューから「タスク スケジューラ」と検索し、起動します。

新しいタスクの作成手順

  1. 右側の「基本タスクの作成」をクリック
  2. 名前と説明を入力(例:毎日バックアップ)
  3. 「トリガー」で実行タイミングを設定(毎日・毎週など)
  4. 「操作」で「プログラムの開始」を選択
  5. 「プログラム/スクリプト」欄に C:\Scripts\backup.bat などのパスを入力
  6. 確認して完了

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 による自動登録も可能

日次バックアップやファイル整理など、定型業務の自動化にぜひ取り入れてみてください。