
批處理使用adb輸入特殊字符英文雙引號的一些問題關于批處理使用adb輸入特殊字符英文雙引號的一些問題:之前寫了個簡單的win通過for 遍歷adb devices序列號來使用adb -s 指定序列號 shell input text 輸入內容 的簡單腳本,可是遇到輸入特殊字符因為雙引號本身的特性而倒是if部分判斷時直接退出。故先將單臺輸入部分代碼拿了出來,下列代碼使用了字符截取與合并的方式處理了關于adb輸入英文字符的轉譯問題,但win這邊我使用set將放轉譯符:^截取合并后并未達成能如期使用:if ”%處理后變量%“==”指定值“ 不退出而是執行接下來的操作,希望能幫忙解決一下這個問題代碼如下:
- :1
- set /p c=請輸入:
- set v=%c:'='%
- set g=%v:=%
- set f=%g:&=&%
- set k=%f:=^%
- if %k%=='=' ( set k=&goto 1)
- if %k%==e call :g
- adb shell input text %k%
- echo 你輸入了%c%
- echo adb 輸入了%k%
- pause
- goto 1
- :g
- timeout 2 >nul
- echo 2秒后退出!!!
nclick="copycode($('code0'));">復制代碼
輸入1個雙引號的運行結果:C:UsersDesktop>set /p c=請輸入: 請輸入: C:UsersDesktop>set v=C:UsersDesktop>set g=C:UsersDesktop>set f=C:UsersDesktop>set k=^此時不應有 =' ( set k=&goto 1)。C:UsersDesktop>if ^=='=' ( set k=&goto 1)C:UsersDesktop>