WinActorを自動実行で運用する その4(シナリオ起動)
WinActorをタスクスケジューラで自動運用する方法です。
起動ショートカットの作成
ツール ー 起動ショートカット作成 から起動用のショートカットを作成します。

起動オプションは以下の4つを使います。
- -f 指定したシナリオファイルを起動時に開きます。
- -r 起動後にシナリオ実行します。
- -e シナリオの実行完了後に、WinActorを終了します。
- -t メイン画面を表示せず、WinActorをタスクトレイに収容した状態(最小化した状態)で起動します。
シナリオファイル(ums7)を指定して、起動後に実行、実行完了後に終了、タスクトレイに常駐にチェックを入れて、作成します。

「01_シナリオA.ums7」を起動するショートカットを「01_シナリオA」の名前で作成しました。

作成後のショートカットファイルのプロパティを確認します。

作成後のリンク先は下記になっています。
C:\WinActor7\WinActor7.exe -f “G:\マイドライブ\WinActor\シナリオ\01_シナリオA\01_シナリオA.ums7" -r -e -t
作成したショートカットファイルをダブルクリックで実行
ショートカットファイルを実行すると、WinActorが起動し、自動でシナリオを実行します。
起動時はタスクトレイに、WinActorのアイコンが表示されます。
シナリオ終了時には自動でWinActorが終了します。WinActorのアプリケーションが終了するので、当然、タスクトレイのアイコンも無くなります。
すでにWinActorが起動している場合
ショートカットファイルで実行するときに、WinActorが起動している(他のシナリオの編集中・他のシナリオの実行中)ときには、対象のシナリオを自動起動することができません。
WinActor6までは、複数のシナリオを同時に起動できないため、なにもおこりません。WinActor7では、新規タブに、対象のシナリオを開きます(実行はしません)。
バッチファイルからシナリオを起動する方法
作成したショートカットファイルをタスクスケジューラに登録すれば、WinActorのシナリオの自動起動ができます。
自動起動の前後に、ファイルチェックやメール送信などの処理を追加したい場合は、バッチファイルからショートカットを起動する方法にします。
01_シナリオA.bat の名前でテキストファイルを作成します。

バッチファイルには、startコマンドでショートカットを指定することを入力し、文字コード「ANSI」で保存します。
@echo off
rem startコマンドでショートカットを起動する
start G:\マイドライブ\WinActor\シナリオ\01_シナリオA\01_シナリオA.lnk
:END

batファイルをダブルクリックでシナリオの自動起動・終了ができるようになりました。
シナリオ起動前に事前にファイルの存在チェックをしたい場合
シナリオの中で対象のファイルの有無をチェックすればいいのですが、シナリオを起動するまでもなく、「ファイルが存在しなければ、処理をしない」をバッチファイルで実現することも可能です。
ifとGOTOを使います。ファイルが存在しなければ、ENDまでGOTOするため、startコマンドは実行されません。
@echo off
rem シナリオ起動前に対象ファイル有無の確認
set fname=”test.txt”
if not exist %fname% goto END
rem startコマンドでショートカットを起動する
start G:\マイドライブ\WinActor\シナリオ\01_シナリオA\01_シナリオA.lnk
:END

すでにWinActorが起動している場合、ログを残して終了する
バッチファイルの起動時にWinActorが起動していると、対象のシナリオが起動できません。デスクトップにログを残して、終了します。
@echo off
echo バッチファイルフルパス:%0
rem WinActor7.exeプロセスチェック
tasklist | find "WinActor7.exe" > NUL
if %ERRORLEVEL% == 0 (
echo %date% %time% "WinActorが起動中のため実行できません。" %0 >>%userprofile%\desktop\起動エラーログ.txt
echo 処理を中断します。
goto END
)
rem startコマンドでショートカットを起動する
start G:\マイドライブ\WinActor\シナリオ\01_シナリオA\01_シナリオA.lnk
:END
WinActor Ver7のプロセスはWinActor7.exeです。WinActor Ver6のプロセスはWinActor.exeです。
両方のプロセスをチェックする場合は2つ書きます。
@echo off
echo バッチファイルフルパス:%0
rem WinActor7.exeプロセスチェック ver.7
tasklist | find "WinActor7.exe" > NUL
if %ERRORLEVEL% == 0 (
echo %date% %time% "WinActor7が起動中のため実行できません。" %0 >>%userprofile%\desktop\起動エラーログ.txt
echo 処理を中断します。
goto END
)
rem WinActor.exeプロセスチェック ver.6
tasklist | find "WinActor.exe" > NUL
if %ERRORLEVEL% == 0 (
echo %date% %time% "WinActor6が起動中のため実行できません。" %0 >>%userprofile%\desktop\起動エラーログ.txt
echo 処理を中断します。
goto END
)
rem startコマンドでショートカットを起動する
start G:\マイドライブ\WinActor\シナリオ\01_シナリオA\01_シナリオA.lnk
:END
起動できないときは、デスクトップにログファイルが出現します。確認後、対応したらログファイルを削除します。

また、powershellで「起動できなかったエラー」のメール送信を追加すれば、PCを確認しなくても状況がわかります。

以上です。
ディスカッション
コメント一覧
まだ、コメントがありません