バッチファイルから引数を与えてプロセスを実行したい

こんにちは。
製品版Studioをインストールしたマシンで、ロボットデフォルトにパブリッシュしたプロセスをバッチファイルから起動しようとしています。

その際、引数を与えずに実行することはできたのですが、以下のようなコマンドで
引数にパスを与えながら実行しようとすると、UiRobot.exeがエラーを返します。

(バッチファイル内容)
cd “C:\Program Files (x86)\UiPath\Studio”
UiRobot -process “テストプロセス” -input “{‘in_arg1’:‘hoge.bat’,‘in_arg2’:‘C:\HOGE’}”
(バッチファイル実行時エラーメッセージ)
Bad JSON escape sequence: \H. Path ‘in_arg2’, line 1, position 37.

in_arg2の内容であるフォルダパスに含まれる「\」のエスケープがうまくいっていないのだと思うのですが、
どのようにエスケープすればよいか、知恵をお借りできればと思います。

バージョンは2019.4.4です。
よろしくお願いいたします。

2 Likes

こんにちは

少なくともJSONフォーマットの制約で\をエスケープしないといけないので

-input "{'in_arg1':'hoge.bat','in_arg2':'C:\\HOGE'}"

コマンドライン上でも\自体をエスケープしないといけないかもしれないので

-input "{'in_arg1':'hoge.bat','in_arg2':'C:\\\\HOGE'}"

のどちらかになるのではと思います。まずは双方をお試しいただければと思います。

3 Likes

早速のご回答ありがとうございます。

こちらでおっしゃる通り、jsonに渡す前のコマンドライン上でのエスケープの考慮が漏れていた形でした!
無事、狙った形で引数文字列を渡すことができましたことご報告いたします。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.