我需要針對傳統應用程序自動執行一些任務。它沒有API,但供應商提供了一個.exe,我可以運行以執行鍼對該應用程序的各種任務。Powershell - 與可執行文件的命令行提示交互?
我可以在PowerShell就好調用的.exe,但調用它後,會提示以下輸入:
Do you agree to the license: YES User name: myuid Password: SuperSecretPassword`
我可以在命令提示符下交互運行這只是罰款,並手動輸入所需的輸入提示,但我需要在腳本中自動執行此操作。 .exe不接受任何命令行參數(它是一箇舊應用程序),我可以傳遞的唯一參數是我想要針對應用程序執行的命令。 .exe只是沒有GUI的命令行,所以GUI自動化工具也不是一個選項。
我可以在* nix shell中很容易地用expect
這樣做,但是假設我有一個需要運行的.exe文件,那是不可能的。在Windows中似乎沒有「期待」的等同物,所以我很好奇這是否可以在PowerShell中完成?
注意:對於Windows腳本我喜歡PowerShell中,但如果需要的話可以利用的VBScript。
否定的。 Start-Process在單獨的命令提示符窗口中打開命令,然後SendKeys命令將輸入發送到我啓動它的PowerShell窗口。 – user3246693
我也試過了,沒有使用Start-Process命令,可執行文件運行,提示我輸入。我手動輸入了所有輸入,可執行文件完成了它的工作,並且完成後,SendKeys命令將3個字符串輸出到PowerShell提示符。 – user3246693
您可能需要使用'$ ID =(開始處理-PassThru).id''添加型-AssemblyName Microsoft.VisualBasic' '[Microsoft.VisualBasic.Interaction] ::使用AppActivate( 「$ ID」)' – BenH