Powershell, как добавить заголовки в CSV-файл - PullRequest
1 голос
/ 13 марта 2020

Кто-нибудь из вас знает, как добавить заголовки во внешний файл CSV? Я искал много других примеров, но не нашел такого, который мог бы мне помочь.

Сейчас мой вывод выглядит так:

Name : Steve 
Adress: Berlin
Age: 21
And more....

, но я хотел бы получить его вот так

Name  Adress   Age
----  -------  ---
Steve Berlin   21
[xml]$config = Get-Content -Path 'C:\Users\DZimmermann\Desktop\EVIM.Script\EVIM-Config.xml'
[xml]$blacklist = Get-Content -Path 'C:\Users\DZimmermann\Desktop\EVIM.Script\EVIM-Blacklist.xml'



#Names to filter
$BLN = $blacklist.Names
#Import Path
$info = Import-Csv $config.config.path.input -Delimiter ';'
$info | Format-Table
#from which month
#$dateCutoff = get-date "02.2020" -Format "MM.yyyy"
$dateCutoff = $config.config.date
$result = foreach($i in $info){
    if(-Not($BLN -contains $i.SCAN_USER)){


        $entryDate = Get-Date $i.SCAN_DATE -Format "MM.yyyy"


        if($entryDate -eq $dateCutoff){
        $i
        }
     }
   $result | Out-File $config.config.path.output 
   Write-Host $i
   $config.config.path.output + "\" + $info | Out-File -Append $config.config.path.output 
}

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Здесь вы не можете добиться удачи, используя Import-Csv или Export-Csv, если вы ограничены в использовании out-file: (

То, что вам нужно сделать, - это передать pscustomobject на выход CSV-файл.

Попробуйте сделать следующее:

[pscustomobject]@{
  Name = "Anything, you can use variables in place of this string"
  Address = "String or variable"
  Age = Integer or Variable
} | out-file "filepath.csv"

Далее, когда вы хотите получить его содержимое, используйте get-content вместо import-Csv

Get-Content "filepath.csv"

Если вы экспортируете таблицы ha sh в текстовый файл, то сначала преобразуйте его в pscustomobject:

   $object = New-Object PSObject
   $hashtable.GetEnumerator() |  ForEach { Add-Member -inputObject $object -memberType NoteProperty -name $_.Name -value $_.Value }
  $object | out-file "filepath.csv"

К вашему сведению: я выполнил тест на TIO и моем P C.

0 голосов
/ 13 марта 2020

Использование Export-CSV:

Для экспорта документов CSV не следует использовать Out-File. Вы должны использовать Export-CSV:

$data | Export-Csv -Path ".\yourdocumentname.csv" -NoTypeInformation -Delimiter ','

Используя Out-File:

$data | ConvertTo-CSV -Delimiter ',' -NoTypeInformation | Out-File ".\yourdocumentname.csv" -Encoding utf8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...