2012-03-20 202 views
2

我正在嘗試將Powershell腳本的輸出重定向到一個txt文件。如何重定向輸出?

在PowerShell窗口,我嘗試:

.\script.ps1 > list.txt

但它沒有幫助,所有的輸出仍然被打印到窗口。

我然後設法:

.\script.ps1 >& list.txt

而得到這個錯誤:如果你想捕捉的輸出被用寫主機寫入控制檯

Missing file specification after redirection operator. 
At line:1 char:21 
+ .\script.ps1 > <<<< & list.txt 
    + CategoryInfo   : ParserError: (:) [], ParentContainsErrorRecordException 
    + FullyQualifiedErrorId : MissingFileSpecification 

回答

3

如果您正在使用Write-Host(或[Console]::WriteLine),你要麼需要改變那些Write-Output或做寫在script.ps1輸出:

powershell.exe -File test.ps1 > out.txt 

順便說>是語法糖Out-File,他們是一回事。

+1

現在我得到:「重定向操作符後缺少文件規範。」我嘗試了很多我能想到的變體:( – 2013-09-13 12:45:51

0

,你需要將其改爲寫入輸出。

+0

腳本使用[Console] :: WriteLine – JBurace 2012-03-20 22:40:05

+1

@JBurace'[Console] :: WriteLine'和'Write-Host'基本上是一樣的東西。 '[Console] :: Write'是'Write-Host -NoNewLine' – 2012-03-20 22:41:33

+0

太棒了。 – mjolinor 2012-03-20 22:54:02

0

你不需要在>之後的&。它僅用於執行某些操作。

.\script.ps1 > list.txt 

如果script.ps1使用Write-Host[Console]::WriteLine你將需要更新其輸出。

Here是將Write-Host腳本更新爲可輸出的示例。

+0

或許你的意思是'Write-Host'。'Write-Output'可以很好地運行'> list.txt'。 – 2012-03-20 22:49:11