2014-03-26 130 views
7

我有一個包含屬性的對象集合:ProductName和PartName。收集的內容首先輸出到文件:使用Powershell將結果或文本追加到文本文件

$colProducts | sort-object ProductName | ` 
    Select-object ProductName PartName | ` 
    Format-Table -autosize ProductName, PartName | ` 
    Out-File myProducts.txt 

到目前爲止這麼好。但是,我無法像這樣向結果文件附加文本消息:

Add-Content myProducts.txt "`nParts in more than one Product`n" 

我發現附加文本在末尾不可讀。我注意到的一件事是,第一個集合到一個文件的輸出是Unicode,而第二個代碼(add-content)是ASCII,如果只是一個新文件。

在此之後,我想繼續添加以下信息相同的結果文件:

$colProducts | Group-object PartName | sort-object PartName | ` 
    Where-Object {$_.Count -gt 1 } | ` 
    Select-object ProductName PartName | ` 
    Format-Table -autosize ProductName, PartName | ` 
    Out-File myProducts.txt 

上面的代碼將覆蓋到結果文件。我需要附加到該文件。非常感謝幫助!

更新:很高興知道 - 附加選項。如何添加內容?看起來在收集Out-File之後向文件添加了一些不可讀的字符。

+1

不會出文件-append不行? – FLGMwt

+2

順便說一句,你不需要在行尾有反標記。 PowerShell讓你用管道符結束一行。 –

回答

2

嘗試:

$colProducts | Group-object PartName | sort-object PartName | ` 
    Where-Object {$_.Count -gt 1 } | ` 
    Select-object ProductName PartName | ` 
    Format-Table -autosize ProductName, PartName | ` 
    Out-File -Append myProducts.txt 
11

我先試試:

$colProducts | Group-object PartName | sort-object PartName | ` 
    Where-Object {$_.Count -gt 1 } | ` 
    Select-object ProductName PartName | ` 
    Format-Table -autosize ProductName, PartName | ` 
    Out-File -Append myProducts.txt 

再看看this來感受一下你遇到什麼。

本質上,Out-File(和Out-File -Append)默認爲您提供Unicode,Add-Content默認爲ASCII。我的建議將堅持相同的命令,你應該沒有問題。當然help Out-File -Detailed!總是檢查一下powershell的例子,因爲它們幫助了很多,不僅僅是爲了找出它們的常見用法,而且也是爲了幫助它們。

2

另一種選擇:

$colProducts | sort-object ProductName | ` 
    Select-object ProductName PartName | ` 
    Format-Table -autosize ProductName, PartName | ` 
    Out-String | Add-Content myProducts.txt 

Add-Content myProducts.txt "`nParts in more than one Product`n"