gpt4 book ai didi

Powershell - 与可执行文件的命令行提示交互?

转载 作者:行者123 更新时间:2023-12-02 22:42:54 34 4
gpt4 key购买 nike

我需要针对遗留应用程序自动执行一些任务。它没有 API,但供应商提供了一个 .exe,我可以运行它来针对应用程序执行各种任务。

我可以在 PowerShell 中调用 .exe 就好了,但是在调用它之后会提示输入以下内容:

您是否同意许可:是
用户名:myuid
密码:SuperSecretPassword`

我可以在命令提示符下以交互方式运行它,并根据提示手动输入请求的输入,但我需要在脚本中自动执行此操作。 .exe 也不接受任何命令行参数(它是一个旧应用程序),我可以传递的唯一参数是我想对应用程序执行的命令。 .exe 仅基于命令行,没有 GUI,因此 GUI 自动化工具也不是一个选项。

我可以用 expect 轻松做到这一点在 *nix shell 中,但是考虑到我需要运行一个 .exe,这是不可能的。在 Windows 中似乎没有“期望”等价物,所以我很好奇这是否可以在 PowerShell 中完成?

注意:对于 Windows 脚本,我更喜欢 PowerShell,但如有必要,可以使用 VBScript。

最佳答案

如果我没记错的话,如果它只是一行,您可以将字符串通过管道传输到 exe,例如。 "asdf" | example.exe ,但它是多行输入,您可能需要使用 SendKeys

Add-Type -AssemblyName 'System.Windows.Forms'
$ID = (Start-Process example.exe -PassThru).id
Sleep 1
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.Interaction]::AppActivate([Int32]$ID)
[System.Windows.Forms.SendKeys]::SendWait("YES~")
[System.Windows.Forms.SendKeys]::SendWait("myuid~")
[System.Windows.Forms.SendKeys]::SendWait("SuperSecretPassword~")

关于Powershell - 与可执行文件的命令行提示交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43852056/

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