🤵‍♂️

雑にWindowsのタスクスケジューラで定期実行バッチを一括作成

2024/05/20に公開

はじめに

  • 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を購入してリモートデスクトップで利用しつつバッチ処理を行わせるサーバとした。

https://amzn.to/3QTzNnc

いままではJenkinsを利用していたが、Javaが怖くなってきたので、今回は回避

Discussion