PowerShellスクリプトに標準入力(読み取りホスト)リダイレクトここではサンプルPowerShellスクリプトです
hello
は、そして、我々は通過したいですパイプをpowershellから入力します。ここではいくつかの私が試してみましたです:
.\test.ps1 < test.txt
.\test.ps1 < .\test.txt
.\test.ps1 | test.txt
.\test.ps1 | .\test.txt
test.txt | .\test.ps1
.\test.txt | .\test.ps1
get-content .\test.txt | .\test.ps1
だけでも、入力をエコーしようとすると、いずれかの動作しません。その上のすべての例では、エラーを生成しません
echo hi | \.test.ps1
は常に受け入れるのでユーザーを代わりに促しパイプ入力。
注:あなたはPowerShellスクリプトへのパイプ入力することはできません、ソリューションをお探しの方へ:私のPowerShellのバージョンテーブルが4.0.-1-1
は感謝
編集/結果語ります。 PSファイルを更新する必要があります。下のスニペットを参照してください。
したがって、パイプ入力をサポートするにはPS1ファイルを編集する必要があります。標準入力をリダイレクトする方法はありませんか?たとえば、C#ではConsole.ReadLine()を使用するだけで、CMDを通じてその行にパイプすることができます。実行可能ファイルにパラメータを渡すことはありません。入力をリダイレクトすることになります。 – Peanut
@Peanutそれは私の知識の範囲を超えてあなたがしているものを得る方法があるかもしれません。 ['Read-Host'のドキュメント(https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.utility/read-host)は、パイプラインからの値を受け入れないことを指定しています。あなたの後にある_functionality_を得るために、私は 'if'ステートメントを使います。入力をPowerShellにリダイレクトするには、スクリプト内の 'Read-Host'以外に何かがある必要があると思います。 – gms0ulman
ありがとうございます。 「このコマンドレットに入力をパイプすることはできません」という巨大な注釈は表示されませんでした。 – Peanut