Adicionar linhas ao ficheiro CSV em powershell

A tentar descobrir como adicionar uma linha a um ficheiro csv com títulos. Eu recebo o conteúdo usando:

$fileContent = Import-csv $file -header "Date", "Description"

$File devolve

Date,Description
Text1,text2 
text3,text4

como é que adiciono uma linha com uma nova data e descrição. Desculpe, sou relativamente nova em powershell. graças a quem puder ajudar.

Author: Ken White, 2012-03-22

3 answers

Crie um novo objecto personalizado e adicione-o à lista de objectos que Import-Csv cria.

$fileContent = Import-csv $file -header "Date", "Description"
$newRow = New-Object PsObject -Property @{ Date = 'Text4' ; Description = 'Text5' }
$fileContent += $newRow
 10
Author: Andy Arismendi, 2012-03-21 21:41:33

Para simplesmente adicionar a um ficheiro em powershell, poderá usar o adicionar-conteúdo.

Então, para adicionar apenas uma nova linha ao ficheiro, tente o seguinte, onde $sua nova data e $sua descrição contêm os valores desejados.

$NewLine = "{0},{1}" -f $YourNewDate,$YourDescription
$NewLine | add-content -path $file

Ou

"{0},{1}" -f $YourNewDate,$YourDescription | add-content -path $file
Isto vai marcar a nova linha até ao fim da linha .csv, e não vai trabalhar para a criação de novos .ficheiros csv onde terá de adicionar o cabeçalho.
 9
Author: marceljg, 2012-03-22 15:32:29
Sei que este é um fio antigo, mas foi o primeiro que encontrei à procura. A solução += não funcionou para mim. O código que comecei a trabalhar é como abaixo.
#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
{[[2]} eu fui capaz de usar isto como uma função para fazer um loop através de uma série de arrays e inserir o conteúdo no arquivo CSV.

Funciona em powershell 3 e acima.

 3
Author: corky, 2015-06-17 23:48:20