スケジュールで実行しているスクリプトを修正したら、記述ミスでエラーメッセージが表示されて以降のスケジュールも停止した。
スケジュール設定で、別プロセスで実行にチェックを入れておけば、エラーメッセージが出たスクリプトは、そのままで次のスケジュールが実行できる
エラーメッセージを解除するために、UWSCを再起動する
DosCmd(“uwsc_restart1.bat”) // 再起動batを実行
uwsc_restart1.batは、
@echo off
start “” “C:\ProgramData\tools\uwsc_restart2.bat”
uwsc_restart2.batは
@echo off
ping localhost -n 3 > nul
taskkill /im UWSC.exe /F /T
ping localhost -n 5 > nul
start “” C:\ProgramData\tools\uwsc.exe
exit
※UWSCの特徴として、UWSCスクリプトが終了(本体を終了も同様)させると、実行中のものも終わってしまうことがある
uwsc_restart1.batのみで、uwsc_restart2.batの内容を実行すると、taskkill 以降の処理は実行されずに、batファイルが終わってしまう
そこで、startで別にbatファイルを実行すると、uwsc_restart1.batが終わっても、uwsc_restart2.batは独立して実行されるので、うまくいく
※それぞれのスクリプトは別プロセスで実行すること
この様なBATファイルを使わなくても、UWSCには、POFF( コマンド )という便利な機能があるが、別プロセスで実行しても、該当プロセス以外は対応できない。
同一プロセスだとエラーメッセージにOKをクリックしないと停止したままなので、上記のBATファイルでの処理が必要
- // UWSC再起動
POFF(P_UWSC_REEXEC) - // UWSC再起動 スクリプト再実行
- POFF(P_UWSC_REEXEC,TRUE)