タイトル付きのcsvファイルに行を追加する方法を理解しようとしています。私は使用してコンテンツを取得します:
$fileContent = Import-csv $file -header "Date", "Description"
$File
戻り値
Date,Description
Text1,text2
text3,text4
新しい日付と説明を含む行を追加するにはどうすればよいですか。申し訳ありませんが、Powershellは比較的初めてです。助けてくれる人に感謝
新しいカスタムオブジェクトを作成し、そのオブジェクト配列に追加しますImport-Csv
作成します。
$fileContent = Import-csv $file -header "Date", "Description"
$newRow = New-Object PsObject -Property @{ Date = 'Text4' ; Description = 'Text5' }
$fileContent += $newRow
PowerShellでファイルに単純に追加するには、add-contentを使用できます。
したがって、ファイルに新しい行のみを追加するには、次のことを試してください。$ YourNewDateと$ YourDescriptionには必要な値が含まれています。
$NewLine = "{0},{1}" -f $YourNewDate,$YourDescription
$NewLine | add-content -path $file
または、
"{0},{1}" -f $YourNewDate,$YourDescription | add-content -path $file
これは、.csvの末尾に新しい行をタグ付けするだけであり、ヘッダーを追加する必要がある新しい.csvファイルの作成には機能しません。
これは古いスレッドであることは知っていますが、検索したときに最初に見つかったスレッドです。 + =ソリューションは私にとってはうまくいきませんでした。動作するようにしたコードは次のとおりです。
#this bit creates the CSV if it does not already exist
$headers = "Name", "Primary Type"
$psObject = New-Object psobject
foreach($header in $headers)
{
Add-Member -InputObject $psobject -MemberType noteproperty -Name $header -Value ""
}
$psObject | Export-Csv $csvfile -NoTypeInformation
#this bit appends a new row to the CSV file
$bName = "My Name"
$bPrimaryType = "My Primary Type"
$hash = @{
"Name" = $bName
"Primary Type" = $bPrimaryType
}
$newRow = New-Object PsObject -Property $hash
Export-Csv $csvfile -inputobject $newrow -append -Force
これを関数として使用して、一連の配列をループし、内容をCSVファイルに入力することができました。
Powershell 3以降で動作します。