🤵♂️
雑にWindowsのタスクスケジューラで定期実行バッチを一括作成
はじめに
- Windows11が対象
- タスクスケジューラで毎日定時に一回起動するジョブを一定数作成する。
- ジョブはbatファイルを呼び出すだけで、必要な処理はその中に記載する。
- 毎週の一回のタスクは月曜日に一個用意
- 実際の配置フォルダはランダム文字列を入れている。
事前準備
- 次のディレクトリに呼び出されるBATファイルを用意する
配置フォルダ
c:\tmp\cron\
配置ファイル
daily_0001.bat
daily_0401.bat
daily_0801.bat
daily_1201.bat
daily_1601.bat
daily_2001.bat
weekly_mon_0130.bat
各BATの内容
echo off
タスクスケジューラへ登録
管理者のPowerShellで以下のコマンドを実行する
schtasks /create /tn MyTask_daily_0001 /tr c:\tmp\cron\daily_0001.bat /sc daily /st 00:01
schtasks /create /tn MyTask_daily_0401 /tr c:\tmp\cron\daily_0401.bat /sc daily /st 04:01
schtasks /create /tn MyTask_daily_0801 /tr c:\tmp\cron\daily_0801.bat /sc daily /st 08:01
schtasks /create /tn MyTask_daily_1201 /tr c:\tmp\cron\daily_1201.bat /sc daily /st 12:01
schtasks /create /tn MyTask_daily_1601 /tr c:\tmp\cron\daily_1601.bat /sc daily /st 16:01
schtasks /create /tn MyTask_daily_2001 /tr c:\tmp\cron\daily_2001.bat /sc daily /st 20:01
schtasks /create /tn MyTask_weekly_mon_0130 /tr c:\tmp\cron\weekly_mon_0130.bat /sc weekly /d mon /st 01:30
一括削除用
schtasks /delete /tn MyTask_daily_0001 /F
schtasks /delete /tn MyTask_daily_0401 /F
schtasks /delete /tn MyTask_daily_0801 /F
schtasks /delete /tn MyTask_daily_1201 /F
schtasks /delete /tn MyTask_daily_1601 /F
schtasks /delete /tn MyTask_daily_2001 /F
schtasks /delete /tn MyTask_weekly_mon_0130 /F
その他
- とりあえず雑に登録しておいて、以降はBATファイルの中身を調整する。
- 実行ユーザを調整したい場合はタスクスケジューラのUIから調整する。
- バッテリーモードでは起動されないので、その設定を変更する場合はUIから実施する必要がある。
- タスクスケジューラの管理はschtasksから実行するほうが楽なのですが、全部のパラメータを調整できるわけではないのが不便
経緯
ミニPCを購入してリモートデスクトップで利用しつつバッチ処理を行わせるサーバとした。
いままではJenkinsを利用していたが、Javaが怖くなってきたので、今回は回避
Discussion