$filesremoved | export-csv -Path E:\Code\powershell\logs\filesremoved.txt -NoTypeInformation
我也试过
$filesremoved | export-csv -Path E:\Code\powershell\logs\filesremoved.txt -NoTypeInformation -NoClobber
每次都会覆盖该文件。有没有办法继续向文件添加内容?
我收到错误
Export-Csv : A parameter cannot be found that matches parameter name 'Append'.
答案 0 :(得分:7)
我不知道$filesremoved
包含什么,但要在PS2.0中添加CSV输出,你可以试试这样的事情:
$filesremoved | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Out-File -Append -FilePath "test2.csv"
Select-Object -Skip 1
用于删除标头。但是,您应该指定所需的列顺序,分隔符和编码,例如:
$filesremoved | Select-Object -Property Name, Date | ConvertTo-Csv -Delimiter ";" -NoTypeInformation | Select-Object -Skip 1 | Out-File -Append -Encoding ascii -FilePath "test2.csv"
答案 1 :(得分:6)
在PowerShell 3.0之前,-Append
的{{1}}参数不存在。
在PowerShell 2.0中解决此问题的一种方法是导入现有CSV,创建一些新行,附加两个集合,然后再次导出。例如,假设test.csv:
Export-Csv
您可以使用以下脚本将一些行附加到此CSV文件:
"A","B","C"
"A1","B1","C1"
"A2","B2","C2"
运行此脚本,test2.csv的内容为:
$rows = [Object[]] (Import-Csv "test.csv")
$addRows = 3..5 | ForEach-Object {
New-Object PSObject -Property @{
"A" = "A{0}" -f $_
"B" = "B{0}" -f $_
"C" = "C{0}" -f $_
}
}
$rows + $addRows | Export-Csv "test2.csv" -NoTypeInformation
答案 2 :(得分:0)
一种可能性:
$CSVContent = $filesremoved | ConvertTo-Csv
$CSVContent[2..$CSVContent.count] | add-content E:\Code\powershell\logs\filesremoved.txt