试图将一个长字符串传递给 android 模拟器。因此,我必须将我的输入编码为cmd
解析然后以某种方式sh
解析,因为这就是adb
(我用来最终将输入文本获取到 android 模拟器的工具)使用的东西。
简单来说就是:CMD -> adb.exe -> sh -> telnet
主要问题是 adb.exe->sh 步骤。我必须转义(\
之前添加)几个字符。我现在回忆的是;
and(
和)
。
所以在上面的流程中,对于第一个(CMD)步骤,我将作为输入:abc 123 ();
但是对于第二步(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