タスクスケジューラ バッチを順番に起動する方法
子ねた
1つのトリガー(イベントでも指定時間でも何でもいいです)で複数の操作を起動する場合の考察
起動する操作を1個のバッチ等の中で順番に呼べればそれでいいのですが
処理が1個のバッチ内で呼べない制約があり、他の操作とも並列に実行できない場合どうするか?
1つの回答として
1、起動する操作毎にバッチファイルを用意して個別の「操作用タスク」を作成。
※1バッチ=1タスクと考えてOKです。言い換えるとタスクを順番に実行するだけの事です
※ここではバッチ(.bat)としてますが当然スクリプト(.vbs, .js, .ps1)でもOKです
2、そのタスクのトリガーを「特定イベントのログへの記録時」または「イベント時」を指定して作成。
イベントの内容は:
・ログ = アプリケーション
・ソース = EventCreate (※EventCreateが選択に無ければ手動入力)
・イベントID = 701
3、起動する操作の数だけ1~2を繰り返す。(※イベントIDはそれぞれ別の値にする)
4、初めに起動される「操作用タスク」の「起動用タスク」を作成。
「起動用タスク」の内容:
・トリガーは好きなように作成してOK
・タスクを要求時に実行するをチェック
※好きなときに実行できた方がいろいろ便利
・操作の部分で以下が記述されたバッチファイルを呼び出すように指定
eventcreate.exe /ID 701 /T SUCCESS /D ユーザーイベント1
・開始オプション(作業フォルダー)でバッチが存在するフォルダーを指定
5、1で作成したバッチに次の「操作用タスク」を起動するイベントを追加記述。
eventcreate.exe /ID 702 /T SUCCESS /D ユーザーイベント2
起動した処理の戻り値を%errorlevel%や、スクリプトのメソッド戻り値で取得できれば
次の操作タスクを起動する・しない、あるいは条件分岐で別の操作タスクを起動するなど
をこの段階で調整できる
※実行する内容により「最上位の特権」指定を忘れずに。
コメントする
0件のコメント