如果&&导致错误,如何在PowerShell中运行多个ADB命令?

gudnpqoy  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(288)

我正在从CSV文件导入一些值,并使用它们通过以下脚本为Android意图创建一个ADB命令。当我运行脚本时,应用程序打开,但消息没有输入,关键事件似乎也没有发生。

adb shell am start -a android.intent.action.VIEW '-d' "`"https://api.whatsapp.com/send?phone=$($c.number)`"" "&& ping 127.0.0.1 -n 3 > nul && adb shell input text ""$($c.Message)"" && ping 127.0.0.1 -n 1 > nul && adb shell input keyevent 22 && adb shell input keyevent 22 && ping 127.0.0.1 -n 1 > nul && adb shell input keyevent 22 && adb shell input keyevent 22 && adb shell input keyevent 66"

如果我将脚本输出到屏幕上,并将输出复制并粘贴到cmd窗口中,那么一切都会按预期进行。如果我对PowerShell执行相同的操作,则会收到以下错误
此版本中的标记‘&&’不是有效的语句分隔符。
如何修改此脚本以在PowerShell中工作?

hs1ihplo

hs1ihplo1#

我解决了这个问题,方法是将链接的ADB命令分成多个单独的命令,并将ping替换为start-seep。这是可行的,但可能还有一个更有效的解决方案。

adb shell am start -a android.intent.action.VIEW '-d' "`"https://api.whatsapp.com/send?phone=$($c.number)`""

            Start-Sleep -Milliseconds $sleepType

            adb shell input text ""$($c.Message)""

            Start-Sleep -Milliseconds $sleepPress

            adb shell input keyevent 22

            Start-Sleep -Milliseconds $sleepPress

            adb shell input keyevent 22

            Start-Sleep -Milliseconds $sleepPress

            adb shell input keyevent 22

            Start-Sleep -Milliseconds $sleepPress

            adb shell input keyevent 22

            Start-Sleep -Milliseconds $sleepPress

            adb shell input keyevent 66

相关问题