gpt4 book ai didi

powershell - 如何从PowerShell将输入发送到控制台应用程序

转载 作者:行者123 更新时间:2023-12-03 01:25:11 25 4
gpt4 key购买 nike

在使用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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com