有在PowerShell將輸出一個簡單的方法一個字符串變量和控制檯,同時輸出一個字符串變量和控制檯?如何在同一時間
我想我的腳本的輸出捕獲到一個變量,所以我可以分析它在腳本的末尾,將其保存到一個日誌文件,並通過電子郵件發送給操作員。
我的目的是爲了有一個變量$輸出,並添加任何輸出字符串,並也輸出到控制檯立即像
$output="Process started"
$output=+"Doing step 1"
"Doing step 1"
$output=+"Doing step 2"
"Doing step 2"
所以最後我可以節省$輸出到一個日誌文件,電子郵件它並解析它。
我打了三通對象可能的工作,爲此目的但不幸的是它會重寫我的$輸出變量,而不是追加一個字符串,它的。
UPDATE 這是我決定與之合作的最終解決方案 - 感謝manojlds!
$script:output = ""
filter mylog {
$script:output+= $_+"`n"
return $_
}
"doing step {0}" -f 1 | mylog
"doing step {0}" -f 2 | mylog
"doing step {0}" -f 3 | mylog
#in the end of the script
$script:output
這是我如何實現這個第一,但結束了兩個腳本。我現在有更復雜的腳本,需要在調用腳本中進行一些分析,這使我的調用腳本變得複雜。我剛剛發現這篇文章http://get-powershell.com/post/2008/06/26/Stuffing-the-output-of-the-last-command-into-an-automatic-variable.aspx,我在想現在如果我可以做那種壓倒性的默認 – mishkin
對不起,只是爲了讓自己清楚...我有我的主腳本(讓我們說main.ps)和launcher.ps(類似於你的。\ test.ps1 | Tee- Object -file log.txt),所以啓動器將捕獲主腳本的輸出。雖然它的工作原理,我有這樣的兩個問題 - 我沒有看到任何東西,直到我的主腳本完成,我不能做任何分析/解析我的主要腳本 – mishkin
@mishking - '。\ test.ps1 | Tee-Object -file log.txt' - 如果你這樣做了,你會在控制檯中看到輸出的結果。在上述腳本的字符串之間添加一個「睡眠10」,然後看看。另請參閱我的更新回答 – manojlds