other

windows上で定期的タスクを実行する

    Windows上で定期的にタスクを実行させる必要があったので、それに関するメモです。ここでは定期的にバッチファイルを呼び出します。


    コマンド

    タスクの登録方法はいくつかありますが、コマンドプロンプト上で"schtasks"を利用して登録します。コマンドプロンプトで"schtasks /?"とすると利用方法を確認できます。

    >schtasks /?

    SCHTASKS /パラメーター [引数]

    説明:
    管理者がローカルまたはリモートのシステム上のスケジュール タスクの作成、
    削除、クエリ実行、変更、実行および終了を行います。

    パラメーター一覧:
    /Create スケジュール タスクを新しく作成します。

    /Delete スケジュール タスクを削除します。

    /Query スケジュール タスクをすべて表示します。

    /Change スケジュール タスクのプロパティを変更します。

    /Run スケジュールされているタスクをオン デマンドで実行します。

    /End 現在実行中のスケジュール タスクを停止します。

    /ShowSid スケジュールされたタスクの名前に対応するセキュリティ ID を
    表示します。

    /? このヘルプを表示します。

    Examples:
    SCHTASKS
    SCHTASKS /?
    SCHTASKS /Run /?
    SCHTASKS /End /?
    SCHTASKS /Create /?
    SCHTASKS /Delete /?
    SCHTASKS /Query /?
    SCHTASKS /Change /?
    SCHTASKS /ShowSid /?

     


    タスク設定

    以下のコマンドで登録します

    >schtasks /Create /tn "タスク名" /tr "バッチファイルまでのパス" /sc minute

    "minute"の部分は、定期実行パターンを指定しています。ちなみに"minute"の部分は、毎分実行です。よく使うかなと思うものを整理しておきます。

    • 毎日定時に実行したい場合
      • >schtasks /Create /tn "タスク名" /tr "プログラムパス" /sc daily /st 12:00
    • 60分間隔など一定間隔の実行に変更 数字の単位は分
      • >schtasks /Change /TN "タスク名" /RI 60
    •  タスクを削除したいとき
      • >schtasks /Delete /TN "タスク名"

    このページに記載されていることを参考にしました。

    https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/schtasks