PowerShell'de Diziyi CSV'ye Yaz


Bu makalede PowerShell'de bir CSV dosyasına dizinin nasıl yazılacağı açıklanacaktır.

Export-Csv cmdlet'ini kullanma

PowerShell'deki Export-Csv cmdlet'i, verilen nesnelerin bir CSV dosyasını oluşturur. Ancak bir diziyi doğrudan bir CSV dosyasına doğru şekilde yazamazsınız.

Diziyi Export-Csv'ye yönlendirdiğinizde sonuç buna benzer olacaktır.

Bir diziyi CSV dosyasına aktarmanın en iyi yolu şudur:

  • Bir diziden PSObject oluşturma
  • PSObject'i yeni bir dizide saklayın
  • Export-Csv cmdlet'ine yeni bir dizi aktarın

diziyi bir CSV dosyasına yaz:

$array = @('Chris', '24', 'Police'),
          ('Tom', '27', 'Farmer'),
          ('Anthony', '29', 'Lawyer')
$newarr = @()
$columns = @('Name','Age','Job')
foreach ($item in $array){
    $obj = New-Object PSObject
    for ($i=0;$i -lt $array.Length; $i++){
        $obj | Add-Member -MemberType NoteProperty -Name $columns[$i] -Value $item[$i]
    }
    $newarr+=$obj
    $obj=$null
}
$newarr | Export-Csv output.csv -NoTypeInformation

Yukarıdaki örnekte, bir CSV dosyasına yazmak için $array dizisini oluşturduk. $newarr, daha sonra PSObject'i depolamak için kullanılacak boş bir dizidir. $columns veriye ilişkin başlık etiketini içerir.

New-Object cmdlet'ini kullanarak PSObject $obj'ı oluşturduk. Daha sonra for döngüsünde Add-Member kullanarak Name özelliğine ve $columns değerlerini ekledik. >$array değerlerini PSObject'in Value özelliğinde bulabilirsiniz.

New-Object cmdlet'i bir .NET Framework veya COM nesnesinin örneğini oluşturmak için kullanılır.

Add-Membercmdlet'i PowerShell nesnelerine özel özellikler eklemek için kullanılır.

Bundan sonra $newarr'ı $obj'a eklenen verilerle doldurduk.

$newarr artık aşağıdaki verileri içeriyor.

Çıkış:

Name    Age Job   
----    --- ---   
Chris   24  Police
Tom     27  Farmer
Anthony 29  Lawyer

Son olarak, Export-Csv cmdlet'ine bir $newarr dizisini aktardık ve geçerli dizinde bir CSV dosyası output.csv oluşturduk.

-NoTypeInformation, bir CSV dosyasındaki #TYPE bilgi başlığını kaldırmak için kullanılır.

Dizi başarıyla bir CSV dosyasına aktarıldı.

Set-Content cmdlet'ini kullanma

Bu yöntemin çalışması için şöyle bir dizi oluşturmanız gerekir:

Bir dizi oluşturma:

$array = @('Name,Age,Job'),
          ('Chris,24,Police'),
          ('Tom,27,Farmer'),
          ('Anthony,29,Lawyer')

Birden fazla öğeyi ayırmak için virgül kullanırsak bunu bir CSV dosyasına doğru formatta yazabiliriz.

Bu diziyi bir CSV'ye aktarmak için Set-Content veya Add-Content cmdlet'ini kullanabilirsiniz.

diziyi bir CSV dosyasına yaz:

$array | Set-Content output.csv

Hepsi PowerShell'de csv'ye bir dizinin nasıl yazılacağıyla ilgili. Herhangi bir kafa karışıklığınız varsa, yorumlarda bize bildirin.

İlgili makaleler