我有一组具有属性的对象:ProductName和PartName。集合的内容首先输出到文件:
$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
以上代码将覆盖结果文件。我需要附加到该文件。非常感谢帮助!
更新:很高兴知道-Append选项。添加内容怎么样?在收集Out-File之后,它似乎在文件中添加了一些不可读的字符。
答案 0 :(得分:13)
我会先尝试:
$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的例子,因为它们有很大的帮助,不仅要弄清楚它们的常用用法,还要弄清楚它们。
答案 1 :(得分:4)
另一种选择:
$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"
答案 2 :(得分: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