我有一個Powershell腳本,需要執行一個命令行可執行文件,提示用戶輸入(其中沒有命令行參數)。事情是這樣的:如何使Powershell腳本回答用戶輸入的提示?
# promptsForInput.ps1
$someInput = Read-Host "Gimme some input"
# do something with $someInput
實際的可執行文件是編譯好的二進制,我不能修改,但對這個問題的目的,本示例腳本做。我的PowerShell腳本調用可執行文件:
# myScript.ps1
.\promptsForInput.ps1
在運行時,我得到提示輸入的東西:
> .\myScript.ps1
Gimme some input:
我需要能夠填補,而無需用戶干預輸入請求。當promptsForInput.ps1
提示用戶輸入時,我需要myScript.ps1
輸入所需的值並繼續腳本執行。
上SO要麼針對特定的exe答案,或類似的問題,否則無益:
- How to fill the prompt in powershell script
- Powershell: Uninstall Software that has prompts for user input
- How to "answer" a console input prompt in PowerShell (in the code)
- How to write to user input in powershell
'$ input'只是用於這個例子(我會改變它)。就像我說的那樣,被調用的實際程序是一個二進制文件。 – asgallant
有沒有辦法將管道方法擴展到更多輸入?假設'promptsForInput.ps1'要求多個輸入,''foo「| 「酒吧」| 。\ promptsForInput.ps1'(顯然)不起作用,是否有一種語法? – asgallant
如果你有多行輸入,你可以用'\'r \'n'分開;例如'''1號線''無線2'''。但是,這又完全取決於可執行文件是否接受標準輸入。這不在PowerShell的控制之下。 –