Добавить строки в CSV-файл в powershell - PullRequest
6 голосов
/ 22 марта 2012

Попытка выяснить, как добавить строку в CSV-файл с заголовками. Я получаю контент используя:

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

$File возвращает

Date,Description
Text1,text2 
text3,text4

Как добавить строку с новой датой и описанием. Извините, я относительно новичок в powershell. спасибо всем, кто может помочь

Ответы [ 3 ]

11 голосов
/ 22 марта 2012

Чтобы просто добавить файл в 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, где вам нужно будет добавить заголовок.

11 голосов
/ 22 марта 2012

Создайте новый пользовательский объект и добавьте его в массив объектов, который создает Import-Csv.

$fileContent = Import-csv $file -header "Date", "Description"
$newRow = New-Object PsObject -Property @{ Date = 'Text4' ; Description = 'Text5' }
$fileContent += $newRow
5 голосов
/ 18 июня 2015

Я знаю, что это старая тема, но она была первой, которую я нашел при поиске.Решение + = не сработало для меня.Код, который я получил, работает так:

#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 и выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...