是否有將控制檯輸出重定向到變量(不是文件)的powershell cmdlet?在powershell中如何在將命令輸出到命令時獲取命令輸出?
我需要將變量的內容傳遞給二進制的命令行,並將二進制的控制檯響應收集到另一個變量中,但無法弄清楚。
例如,當失敗
$MyP4Client | p4 client -i
要中止上的錯誤,我需要把一個try/catch一輪,然後收集並檢查Perforce公司的p4.exe返回一個文本錯誤消息的OK狀態來自p4的控制檯輸出。 當沒有輸入重定向參與,我可以做到這一點得到P4的控制檯輸出到一個變量:
Try {
$P4response = & 'p4' sync -f //depot/myfiles/... 2>&1
}
Catch {
ExitWithCode 1 # abort
}
if($P4response -match "blah") {
# act on p4 response text
,但我在尋找一種方法來都未能慘淡經營喂$ MyP4Client可變進P4二進制然後抓住p4的輸出。在許多其他的嘗試,這些都不讓P4的輸出到$ P4response:
$P4response = $p4ClientSpec | & 'p4' client -i
$P4response = ($p4ClientSpec | p4 client -i)
$P4response = { $p4ClientSpec | & 'p4' client -i }
$p4ClientSpec | & 'p4' "client -i" | $P4response
最後得到一個解析錯誤($ P4response是一個表達式)。這很明顯,我錯過了一些東西!什麼工作,請嗎? 謝謝
非常感謝鄧肯 - 這就是答案!它正是我正在摸索的東西。非常感謝您的幫助。 – Alan