私は、コマンドラインパラメータを持たないユーザ入力を要求するコマンドライン実行可能ファイルを実行する必要のあるPowershellスクリプトを用意しています。このような何か:Powershellスクリプトを使ってユーザーの入力を求めるプロンプトを出すには?
# promptsForInput.ps1
$someInput = Read-Host "Gimme some input"
# do something with $someInput
実際の実行可能ファイルは、私が変更することはできませんコンパイルされたバイナリであるが、この例のスクリプトは、この質問の目的のために行います。私のPowerShellスクリプトが実行可能ファイルを呼び出します。私は、ユーザーの介入なしにその入力要求に記入できるようにする必要があり
> .\myScript.ps1
Gimme some input:
:実行時に
# myScript.ps1
.\promptsForInput.ps1
、Iは、入力何かにプロンプトが表示されます。 promptsForInput.ps1
がユーザーの入力を促す場合、必要な値を入力してスクリプトの実行を続行するには、myScript.ps1
が必要です。いずれかの特定のexeファイルに特定の答えを持っている、またはSO上
同様の質問には、そうでない場合は役に立たないです:
- 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の制御下にありません。 –