[英]How to tee the output streams of the current PowerShell script?
我有一個PowerShell腳本輸出到stdout和stderr。 我想同時將這些文件發送給幾個日志文件。
最好的方法是什么?
我考慮過幾件事情:
param()
塊。 我可以完全移動param()塊,但我也想調用內部腳本有時用於測試目的(即沒有得到發球台)。 我想我可以在外部腳本中使其成為可選行為.. 我記得當我以前寫一些perl時,有一種方便的方法可以通過鈎子全局重定向所有stdout / err輸出。 PowerShell可以這樣嗎?
哎呦。 我應該花幾分鍾時間跟谷歌一起玩。
Start-Transcript就是這樣做的!
http://technet.microsoft.com/en-us/library/dd347721.aspx
雖然它不捕獲exe的輸出,但只有PowerShell。 這是一個很好的解決方法:
另一個更新:我發現Start-Transcript使用主機窗口緩沖區寬度,這在系統帳戶上運行計划任務時太窄了。 這是如何解決這個問題。 在腳本的頂部添加這樣的內容:
try
{
$host.ui.rawui.buffersize = `
new-object system.management.automation.host.size `
200, $host.ui.rawui.buffersize.height
}
catch {}
將200更改為您想要的成績單寬度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.