2009-09-18 25 views
2

PowerShell可以調用命令行批處理文件。可以使用「tee」命令記錄PowerShell腳本輸出。但tee命令不記錄的批處理文件PowerShell腳本里面的輸出,我在PowerShell中1PowerShell 1沒有捕獲帶三通的批處理文件輸出

試試這個刪節例如:

製作一個批處理文件,名爲test.bat的,與內容

@echo hello from bat 

從PowerShell中運行它:

PS C:\> .\test.bat | tee out.txt 

這工作 - 你將有一個輸出文件,共ntaining

hello from bat 

現在做稱爲PowerShell腳本test.ps1包裹該批處理文件,包含

write-output "hello from PS" 
.\test.bat 

現在用一個發球運行此:

.\test.ps1 | tee pout.txt 

這不記錄批處理文件的輸出 - 輸出文件只包含

hello from PS 

而我預計

hello from PS 
hello from bat 

但沒有批量輸出被捕獲。如何捕獲此PowerShell腳本和從屬批處理文件的輸出?

+1

我在最後添加了一些東西到我的答案。你爲什麼做這個社區維基?這不是對人們回答的抑制,因爲他們不會得分嗎? – 2009-09-18 16:04:33

+0

自從我上次上這個網站以來,我把它定義爲一個社區wiki,人們問這個問題 - 關鍵是他們可以編輯它。積分差異不是我所知道的,這些規則可能在此期間已經改變。這不是次要的問題嗎?這是我能改變的嗎? – Anthony 2009-09-21 11:07:16

+0

我並不關心它;我只是好奇而已。我的理解是,社區維基是針對沒有黑白答案的「意見」問題,特別是對於諸如「你最喜歡的編程語言」這樣的問題,會產生一個荒謬的點數。任何問題都可以由具有足夠積分的人來編輯(2000我認爲)。 – 2009-09-21 12:26:11

回答

5

編輯:

它出現在PowerShell的2的工作,而不是在PowerShell中1

我發現了一個變通的PowerShell的1雖然。嘗試更改test.ps1到此

write-output "hello from PS" 
.\test.bat | write-output 
+0

我正在使用PowerShell 1 – Anthony 2009-09-18 15:37:48

+0

我已更新您的意見 - 在批處理文件中使用「@」,明確表示這是PowerShell 1 – Anthony 2009-09-18 15:40:56

+0

解決方法對我也適用。我們有一個贏家! 因此,這必須與寫控制檯和寫輸出之間的區別。 – Anthony 2009-09-21 11:11:12

相關問題