PowerShell'de CSV Diziye Nasıl Aktarılır?
Son zamanlarda, daha fazla işlem için bir CSV (Virgülle Ayrılmış Değerler) dosyasındaki verileri PowerShell'deki bir diziye aktarma gereksinimi duydum. Bu eğitimde size CSV verilerini PowerShell'de farklı yöntemler kullanarak bir diziye nasıl aktaracağınızı örneklerle göstereceğim.
CSV verilerini PowerShell'deki bir diziye aktarmak için, CSV dosyasından bir dizi nesne oluşturan Import-Csv cmdlet'ini ve ardından dosya yolunu kullanın. Örneğin, $array=Import-Csv -Path 'file.csv', 'file.csv'yi okur ve verileri $array'de saklar. CSV'deki her satır, sütun başlıklarına karşılık gelen özelliklerle birlikte dizide bir nesne haline gelir.
Import-Csv Cmdlet'ini kullanarak CSV'yi PowerShell'de Array'e aktarın
CSV dosyası, virgüllerle ayrılmış verileri içeren düz metin dosyasıdır. CSV dosyasındaki her satır tipik olarak bir veri kaydını temsil eder ve her kayıt virgülle ayrılmış bir veya daha fazla alandan oluşur. CSV dosyaları, birçok uygulamanın oluşturması, okuması ve işlemesi kolay olduğundan veri alışverişi için yaygın olarak kullanılır.
PowerShell'de CSV'yi bir diziye aktarmanın farklı yöntemleri vardır.
Import-Csv Cmdlet'i nedir?
PowerShell, CSV dosyalarını okumak ve bunları nesnelere dönüştürmek için özel olarak tasarlanmış Import-Csv adlı yerleşik bir cmdlet sunar. Microsoft belgelerine göre, Import-Csv cmdlet'i, CSV dosyalarındaki öğelerden tablo benzeri özel nesneler oluşturur ve her sütun, özel nesnenin bir özelliği haline gelir.
CSV verilerini PowerShell'e aktarmanın en kolay yolu Import-Csv cmdlet'ini kullanmaktır. Bu cmdlet, CSV dosyasını okur ve onu, her nesnenin CSV dosyasındaki bir satırı temsil ettiği bir nesne dizisine dönüştürür.
İşte temel bir örnek:
$data = Import-Csv -Path "C:\MyFolder\Users.csv"Bu örnekte $data, her öğenin CSV dosyasındaki sütun başlıklarına karşılık gelen özelliklere sahip özel bir nesne olduğu bir dizidir.
CSV verilerini içe aktardıktan sonra her kaydı bir ForEach döngüsü kullanarak işleyebilirsiniz. Her kaydı görüntüleyen bir örnek:
$data = Import-Csv -Path "C:\MyFolder\Users.csv"
foreach ($record in $data) {
Write-Host "Name: $($record.Name), Email: $($record.Email)"
}CSV dosyasının "Ad" ve "E-posta" adlı sütunlara sahip olduğunu varsayarsak, bu komut dosyası her kaydın adını ve e-postasını yazdıracaktır.
Şimdi betiği VS kodunu kullanarak çalıştırdıktan sonra aşağıdaki ekran görüntüsündeki çıktıya bakın.
CSV dosyanız başlık içermiyorsa bunları -Header parametresini kullanarak belirtebilirsiniz:
$headers = "Name", "Email", "Department"
$data = Import-Csv -Path "C:\MyFolder\Users.csv" -Header $headersArtık $data, nesneler oluşturmak için sağlanan başlıkları kullanacak.
Bazı CSV dosyalarında noktalı virgül veya sekme gibi farklı sınırlayıcılar kullanılabilir. Sınırlayıcıyı -Delimiter parametresiyle belirtebilirsiniz:
$data = Import-Csv -Path "C:\MyFolder\Users.csv" -Delimiter ";"
ArrayList, gerektiğinde büyüyüp küçülebilen dinamik bir dizidir. CSV verilerini bir ArrayList'e aktarmak için Import-Csv cmdlet'ini ForEach döngüsüyle birlikte kullanabilirsiniz:
[array]$data = @()
Import-Csv -Path "C:\MyFolder\Users.csv" | ForEach-Object {
$data += $_
}Bu komut dosyası CSV dosyasını okur ve her kaydı $data dizisine ekler.
PowerShell'de CSV'yi Diziye Aktarma - Gerçek Örnek
Aşağıdaki içeriğe sahip users.csv adlı bir CSV dosyanız olduğunu varsayalım:
Id,Name,Email
1,John Doe,johndoe@example.com
2,Jane Smith,janesmith@example.com
3,Emily Jones,emilyjones@example.comBunu uygulamak için ayrıca user.csv dosyasını da indirebilirsiniz.
Bu CSV'yi PowerShell'deki bir diziye aktarmak ve her kullanıcının ayrıntılarını görüntülemek için aşağıdaki betiği kullanırsınız:
# Import the CSV file into an array
$usersArray = Import-Csv -Path "C:\MyFolder\users.csv"
# Loop through the array and display user details
foreach ($user in $usersArray) {
Write-Host "User ID: $($user.Id)"
Write-Host "Name: $($user.Name)"
Write-Host "Email: $($user.Email)"
Write-Host "-------------------"
}Yukarıdaki PowerShell betiğini çalıştırdığınızda aşağıdaki ekran görüntüsünde çıktıyı göreceksiniz.
User ID: 1
Name: John Doe
Email: johndoe@example.com
-------------------
User ID: 2
Name: Jane Smith
Email: janesmith@example.com
-------------------
User ID: 3
Name: Emily Jones
Email: emilyjones@example.com
-------------------Çözüm
CSV verilerini PowerShell'deki bir diziye aktarma, Import-Csv cmdlet'i kullanılarak kolayca gerçekleştirilebilir. Bu PowerShell eğitiminde, Import-Csv Cmdlet'i kullanarak CSV'nin PowerShell'deki bir Diziye nasıl aktarılacağını açıkladım.

