ワークフローからバッチファイルを実行する方法を紹介します。
逆にバッチファイルからワークフローを実行する方法はこちらをご参照ください。
簡単な方法から順に以下4つの方法を紹介します。
①start process
②invoke powershell
③バッチ直接ダブルクリック
④コマンドプロンプトから実行
引数を入れずに実行すると、上記のようにECHO は です。と出ますが、引数を設定すると引数の値がそのまま表示されます。
Activities>Available>System>Application>Start Processを使用します。
Start Processを選択し、FileNameにバッチファイルのパス、Argumentに引数の値を設定します。
FileNameはファイル選択から選ぼうとするとexeファイルしか選択できないので、直接パスを入力してください。
Argumentが複数の場合は、スペースをいれるか、カンマをいれるかすると複数指定出来ます。
また、もし引数を変数にしたい場合は以下のようにするとできます。
Activities>Available>System>PowerShell>Invoke Power Shellを使用します。
基本的な使い方はこちらをご参照ください。
Invoke Power Shellを使ってバッチを実行する場合は、IsScriptにチェックをつけて、CommandTextにコマンドを入力するのが簡単かと思います。
CommandTextの書き方はStartProcessのFileNameとArgumentを1行で書く感じです。それぞれスペースで区切りをいれましょう。
以下は、引数が変数の例ですが、直接”C:\test\バッチ\time.bat 引数1 引数2″と入力もできます。
また、今回TypeArgumentはStringに変更しています。
もしIsScriptなしでやりたい場合は以下のようになります。
まず、CommandTextはバッチのファイルパスのみにします。
そしてParametersは以下のように設定します。
InvokePowerShellの仕様上、Nameが引数1個目(%1)になり、Valueが引数2個目(%2)となるため、その位置で設定します。
ただし、Nameのところに変数を設定できないので、ご注意ください。
マウスで作業するように、フォルダを開いてダブルクリックします。
まず、Activities>Available>System>Application>Open Applicationを選択します。
そして、Indicate window on Screenでバッチファイルが保存されているフォルダを選択します。
この状態だとうまく開かないので、PropatiesのArgumentsにフォルダのパスを設定します。
これだけでもよいのですが、パスが可変になる場合等は、Selectorのtitleを消しておいた方がよいかと思います。
次に、クリックを入れます。
Activities>Available>UI Automation>Element>Mouse>Double Clickを選択します。
indicate element inside windowでバッチファイルを選択します。
これでも一応動くのですが、Selectorの設定がいまいちなので、出来れば変更しておきましょう。
Selector横の[…]をクリックしSelector Editorを開きます。
左下のOpen in Explorerをクリックし、UI Explorerを開きます。(UI Explorerについてはこちらもご参照ください。)
UI Explorerでは、いらない要素のチェックを外し、text=time.batのチェックをつけましょう。
最終的には以下くらいすっきりできます。
Saveを押して、確定させましょう。するとSelectorは以下のようになります。
これで実行すると、フォルダが開きマウスが移動して、バッチが実行され、結果は以下のようになります。
引数が設定できないので、引数なしの結果となってます。
コマンドプロンプトから実行についてはこちらをご参照ください。
Type intoのTextにバッチのファイルパスと引数を入力しましょう。
以上、ワークフローからバッチファイルを実行する方法でした。
おすすめ順に並んでいるので、問題がなければ①から試していただけると良いかと思います。