我有一個腳本,我在Android手機的adb shell(/ system/etc目錄)中運行,它可以通過發送/接收單個AT命令。 腳本本身(如果在adb shell中運行)工作正常。這就是它的樣子:通過adb發送AT命令到Android手機通過adb
cat /dev/pts/7 &
echo -e $1\\r > /dev/pts/7
下面是亞行外殼輸出:
# ./sendATCommand "at+cops?"
./sendATCommand "at+cops?"
#
+COPS: 0,0,"AT&T",6
OK
/dev/pts/7: invalid length
(need to press ENTER to return control to adb shell)
#
現在我想從我的電腦上運行PowerShell腳本,從而最終通過控制調制解調器AT命令調用該腳本,但沒有任何反應。 例如,下面的powershell腳本會在+ cops發送命令?檢查操作者哪個移動被註冊到:
$adb = [IO.Path]::Combine([IO.Path]::Combine($Env:ANDROID, "platform-tools"), "adb.exe")
& $adb remount
$atCommand = "at+cops?"
& $adb shell /system/etc/sendATCommand $atCommand
輸出可能看起來有時就像+ ATCMD(任何殘留的[專有] AT命令坐在設備緩衝器啓動後),或在+警察(回波) ,或根本沒有,但從來沒有+ COPS:0,0,「AT & T」,我期望的6。你能幫我弄清楚發生了什麼事以及如何解決它?理想情況下 我希望能夠執行命令,將控制權返回給PowerShell,並使輸出可用於進一步處理。 我也接受其他解決方案來實現相同的事情。 將不勝感激您的幫助。謝謝!
從cmd.exe工作是否一樣?聞起來像一個傳遞問題的論點。嘗試引用將引號傳遞給adb.exe,就像這個'&$ adb shell/system/etc/sendATCommand「」「$ atCommand」「」''。 – 2012-01-28 01:51:03
感謝Andy提供的線索,我沒有機會嘗試;明天會做。 – 2012-01-31 01:30:10