Androidエミュレーターに長い文字列を渡そうとしています。だから私は自分の入力を解析する方法でエンコードする必要がありcmd
ます.sh
adb
単純に: CMD -> adb.exe -> sh -> telnet
主な問題は adb.exe->sh ステップです。\
いくつかの文字をエスケープ (前に追加) する必要があります。今思い出したのは;
と(
と)
.
したがって、上記のフローでは、最初の(CMD)ステップでは、入力として次のようになります。abc 123 ();
しかし、2番目のステップ(adb.exe)では、渡す必要がありますadb.exe ... "abc" 62 "123" 62 "\(\)\;"
私ができると思うスペースの分割FIND
(または、これまでに以下にあるもののサンプルを単純化するために使用しているため、デフォルトの引数分離を使用するだけです)が、置換マップ(;
-> \;
)はありますか.batファイルでそれを行う簡単な方法は?
私がこれまでに持っているのはこれです:
@echo off
rem if there are no arguments, exit
IF [%1]==[] exit /B
:loop_args
rem TODO: escape ';' and '(' and ')'
rem send this argument...
adb shell input text %1
rem ...plus a space
if [%2]==[] exit /B
adb shell input keyevent 62
rem shift to the next argument and continue
SHIFT
goto loop_args