作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在使用powershell脚本启动adb shell控制台应用程序之后,我想使用户输入此控制台应用程序自动化。
adb shell "/usr/bin/console_app"
有没有办法让Powershell脚本输入这些控制台输入以及不等待用户输入?
adb shell "/usr/bin/console_app"
sleep -s 5 <# wait for app to start#>
1 <# user input for menu selection#>
谢谢!
最佳答案
我的首选解决方案:
$startInfo = New-Object 'System.Diagnostics.ProcessStartInfo' -Property @{
FileName = "adb"
Arguments = "shell", "/usr/bin/console_app"
UseShellExecute = $false
RedirectStandardInput = $true
}
$process = [System.Diagnostics.Process]::Start($startInfo)
Start-Sleep -Seconds 5
$process.StandardInput.WriteLine("1")
您还可以尝试通过读取输出来等待应用程序完成:
# set this on the ProcessStartInfo:
RedirectStandardOutput = $true
# wait while application returns stdout
while ($process.StandardOutput.ReadLine()) { }
以下内容也可用于非控制台应用程序,但在非交互式上下文中可能无法正常工作:
Add-Type -AssemblyName 'System.Windows.Forms', 'Microsoft.VisualBasic'
$id = (Start-Process "adb" -ArgumentList "shell", "/usr/bin/console_app" -PassThru).Id
Start-Sleep -Seconds 5
[Microsoft.VisualBasic.Interaction]::AppActivate($id)
[System.Windows.Forms.SendKeys]::SendWait("1~")
关于powershell - 如何从PowerShell将输入发送到控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64099897/
我是一名优秀的程序员,十分优秀!