無料のRPAツールSikuliX(シクリ)で作ったスクリプトを夜間PCを使ってない間に自動で動かすことが出来たら楽ですよね。
毎日の作業の場合、「起動すること」ですら積み重なると大きな工数 + 心理的負担になるので、起動も含め完全自動化しましょう。
環境
mac OS Mojave ver10.14
SikuliX IDE2.0.1
Java SE Development Kit 13.0.2
SikuliXバッチファイルを時刻起動させる方法
バッチファイルの作成
まずSikuliXのスクリプトをバッチファイルにする必要がありますが、バッチファイルの作成方法が知りたい方は以下に方法を記載してますのでご参照ください。
Automatorの作成
次に”.command”の拡張子が出来たら、それを実行するアプリケーションを「Automator」で作成します。
AutomatorとはMACの操作を自動化できる標準アプリです。Lanchpad > その他 の中にいますのでクリックして開きます。
次に「書類の種類の選択」にてアプリケーションをクリック。
次に「ユーティリティ」 > 「シェルスクリプトを実行」とクリックし、下記ボックスに作成したバッチファイル(sample.command)のパスを入力。
「ファイル」 > 「保存」にてバッチファイルを格納しているフォルダと同じフォルダに保存すると拡張子「.app」のファイルが出来ました。siku.appという名前にしてます。
crontabの作成
次に”.app”を実行するジョブスケジューラーを作成しますが、cronで作成します。
macOSはLinuxのスケジューラー同様、指定された日付や時刻に自動的にジョブを実行するような設定が可能です。
ジョブを特定の日時で繰り返し実行させるために以下コマンドを実行します。
macusernoMacBook-Air:~ macuser$ crontab -e
するとcrontabの編集画面になるので、以下のように入力します。(毎日深夜02時00分に実行)
00 02 * * * open /User/macuser/Desktop/Sikulix/siku.app
(参考)crontabファイルの書式 は以下の通り
分 時 日 月 曜日 コマンド
・分 — 0〜59
・時 — 0〜23
・日— 1〜31
・月— 1〜12
・曜日— 0(日曜)〜6(土曜)
以上で完了です。
(補足)crontabで直接バッチファイルを実行すればいいのでは?と思われるかもしれませんが、バッチファイルを直接crontabで実行する場合、バッチファイルの中にあるjavaコマンドがうまく動作しませんでした。
cronで実行する場合、最低限のPATHしか用意されてないため、cronで実行するときのみ有効になるようPATHやJAVA_HOMEといった環境変数をバッチファイルに設定するといった手間が発生します。(手間と感じない方はこの方法の方がいいかも。。)
しかし、crontabとバッチファイルの間に「Automator」で作成した.appを噛ませるとバッチファイルを.appが実行することになり、この設定が不要になるというわけです。