下面是一個樣本PowerShell腳本:重定向標準輸入(讀主機)PowerShell腳本
$in = read-host -prompt "input"
write-host $in
下面是一個示例「的test.txt」文件:
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版本表說4.0.-1-1
感謝
編輯/結果:對於那些尋找解決的辦法,你不能管輸入到PowerShell腳本。你必須更新你的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,我相信在腳本 – gms0ulman
中除了'Read-Host'外,還需要一些東西,謝謝您研究它。我沒有看到巨大的註釋,指出「您無法將輸入傳遞到此cmdlet」。 – Peanut