我有一个小脚本,我在 Android 手机的 adb shell(/system/etc 目录)中运行,它可以通过发送/接收单个 AT 命令与调制解调器通信。脚本本身,如果在 adb shell 中运行,可以正常工作。这就是它的样子:
cat /dev/pts/7 &
echo -e $1\\r > /dev/pts/7
这是 adb shell 中的输出:
# ./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)
#
现在我想从我的 PC 上运行的 powershell 脚本调用这个脚本,从而最终通过 AT 命令控制调制解调器,但没有任何反应。例如,下面的 powershell 脚本将发送命令 at+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 命令),或者 at+cops?(echo),或者什么都没有,但绝不会像 +COPS: 0,0,"AT&T" ,6 我期望的。你能帮我弄清楚发生了什么以及如何解决它吗?理想情况下,我希望能够在命令下执行,将控制权返回给 powershell,并提供可用于进一步处理的输出。我也愿意接受其他解决方案来实现同样的事情。非常感谢您的帮助。谢谢!