$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'.
-Append
のExport-Csv
パラメーターは、PowerShell3.0まで存在しません。
PowerShell 2.0でこれを回避する1つの方法は、既存のCSVをインポートし、いくつかの新しい行を作成し、2つのコレクションを追加して、再度エクスポートすることです。たとえば、test.csvを想定します。
"A","B","C"
"A1","B1","C1"
"A2","B2","C2"
次のようなスクリプトを使用して、この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
このスクリプトを実行すると、test2.csvの内容は次のようになります。
"A","B","C"
"A1","B1","C1"
"A2","B2","C2"
"A3","B3","C3"
"A4","B4","C4"
"A5","B5","C5"
何なのかわからない$filesremoved
includeですが、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つの可能性:
$CSVContent = $filesremoved | ConvertTo-Csv
$CSVContent[2..$CSVContent.count] | add-content E:\Code\powershell\logs\filesremoved.txt