PowerShell İçe Aktarma-CSV | PowerShell Import-CSV örnekleri


PowerShell Import-CSV'ye Giriş

Import-csv cmdlet'i, virgülle ayrılmış bir dosyada bulunan bilgileri getirmek ve tablo benzeri bir yapı oluşturmak için kullanılır. Veriler içe aktarıldıktan sonra, csv içeriğini satır bazında yinelemek için foreach cmdlet'i kullanılır. Dosyanın tüm içeriğini içe aktarmak gerekli değildir; filtre koşullarını uygulayıp yalnızca gerekli değerleri getirmek mümkündür. Bu makalede, bir csv'nin powershell'e nasıl aktarılacağı, bir csv dosyasının nasıl sıralanacağı ve filtreleneceği ve bunun elde edilebileceği farklı yollar ayrıntılı olarak ele alınacaktır.

Sözdizimi ve Parametreler

powershell import-csv'nin sözdizimi ve parametreleri aşağıda verilmiştir:

Sözdizimi:

Import-Csv   [[-Delimiter] <Char>]      [-Path] <String[]>      [-Header <String[]>]      [-Encoding <Encoding>]      [<CommonParameters>]
Import-Csv   [[-Delimiter] <Char>      -LiteralPath <String[]>      [-Header <String[]>]      [-Encoding <Encoding>]      [<CommonParameters>]

CSV dosyası içe aktarıldığında, csv dosyasındaki her sütun bir nesne özelliği olarak kabul edilir ve her satır değeri, özelliğin değerlerine karşılık gelir.

Parametreler:

  • -Sınırlayıcı: Csv dosyasındaki değerleri ayırmak için kullanılacak işareti veya karakteri belirtir. Bir csv dosyası için sınırlayıcının varsayılan değeri virgüldür (“, ”). İki nokta üst üste (“: ”) veya noktalı virgül (“; ”) gibi diğer değerler de kullanılabilir. Sağlanan sınırlayıcı dosyada bulunan sınırlayıcıyla eşleşmiyorsa değerler içe aktarılmayacak ve karşılık gelen nesneler oluşturulmayacaktır. Bu parametre char veri tipindedir. Bu parametre hem boru hattı girişine hem de joker karakterlere izin vermez.
  • -Kodlama: Bu, belirtilen csv dosyası için kullanılacak kodlama aracını belirtir. Bu parametrenin veri türü kodlamadır. Parametre, ardışık düzen girişini tanımıyor ve joker karakterlere izin verilmiyor. Kullanılan varsayılan kodlama türü UTF8NoBOM'dur.

Kabul edilebilir diğer değerler aşağıdaki gibidir:

    • Bigendianunicode'lar
    • Oem
    • utf8BOM
    • utf8NoBOM
    • utf7
    • utf8
    • utf32
    • ASCII
  • -Başlık: İçe aktarılan kayıt için bir değişim sütun başlığı aktarımını belirtir. Bu, nesnelerin özellik adlarına karar verir. Başlıklar virgülle ayrılmış biçimde belirtilmelidir. Bunlar tırnak içine alınmamalıdır. Her sütun başlığını tek alıntı işaretleri içine alın. Girilen başlık sayısı csv'de mevcut olandan azsa csv'de kalan sütunlar atılır. Girilen değer csv'de mevcut olan değerden büyükse, bahsedilen ekstra sütunlar boş değerlerle eklenir. Başlık parametresini kullanırken, CSV kaydından ilk başlık aktarımını silin. Başka bir şey, Import-Csv, başlık aktarımındaki şeylerden ek bir soru oluşturur. Bu parametrenin bilgi türü String[]'dir. Varsayılan değer hiçbiridir. Parametre, ardışık düzen girişini tanımıyor ve joker karakterlere izin verilmiyor.
  • -LiteralPath: Bu, içe aktarılacak csv dosyasının bulunduğu yolu belirtir. Bu, orijinal değerinden farklı yazılan bir şey olamaz. Hiçbir değişikliğe izin verilmez. İki takma adı vardır: PSPath ve LP. Varsayılan saygı hiçbiridir. Boru hattı girişini kabul edebilir ancak joker karakterlere izin verilmez.
  • -UseCulture: Bu, geçerli kültürün öğe sınırlayıcı olarak kullanılacağını belirtir. Bu parametrenin veri türü Switch'tir. Varsayılan saygı hiçbiridir. Ardışık düzen girişi kabul edilmez ve joker karakterlere de izin verilmez.

PowerShell Import-CSV örnekleri

Aşağıda belirtilen örnekler verilmiştir:

Örnek #1

Giriş:

Write-Host "Welcome to the demo of Importing a csv file in PowerShell"
$file= Import-Csv -Path "C:\test.csv"
$i=0
foreach ($f in $file)
{
if ($i -lt 10)
{
Write-Host "base name is:" $f.BaseName
Write-Host "Full name is:" $f.FullName
Write-Host "name is:" $f.Name
Write-Host "Created date is:" $f.CreationTime
Write-Host "Modified date is:" $f.LastAccessTime
Write-Host "Location of the file drive is:" $f.PSDrive
$i+=$i
}
}

Çıktı:

Yukarıdaki örnekte, csv dosyası içe aktarılır ve dosya değişkeninde saklanır. Daha sonra csv dosyasının her satırı döngüye alınır. $f, erişilmekte olan csv'nin geçerli satırını ve karşılık gelen $f satır değerlerine erişmeyi belirtir. karşılık gelen başlık veya sütun kullanılır.

Örnek #2

Giriş:

Write-Host "example of reading a csv completely but displaying result based only on the users input"
$studentid= Read-Host "Enter the student roll no to fetch the student details"
Write-Host "Importing the csv file"
$file= Import-Csv -Path "C:\Users\R003646\Desktop\Articles\June\Student.csv"
Write-Host "File is imported successfully"
foreach ($row in $file)
{
if ($row.Sid -contains $studentid)
{
Write-Host "the mentioned student id is valid and his details are as follows" -ForegroundColor Green
Write-Host "Student name is:" $row.Sname
Write-Host "Student age is:" $row.Sage
Write-Host "Student id is:" $row.Sid
Write-Host "Student rank is:" $row.Srank
}
else
{
Write-Host "Enter a valid student id"
break;
}
}

Çıktı:

Yukarıdaki örnekte kullanıcı, görmek istediği öğrenci detaylarına göre terfi ettirilmektedir. CSV'de mevcut olan geçerli bir öğrencinin yoklama numarası girilirse ilgili öğrenci ayrıntıları görüntülenir. Girilen öğrenci rulo numarasının csv'de bulunmaması durumunda ikinci çıktı görüntülenir.

Örnek #3

Giriş:

Write-Host "Importing a csv and displaying the list of data in each column"
$file= Import-Csv -Path "C:\Users\R003646\Desktop\Articles\June\Student.csv"
Write-Host "file is imported" -ForegroundColor Green
write-host "The list of student name in the csv are as follows:" -ForegroundColor Green
$file.Sname
write-host "The list of student age in the csv are as follows:" -ForegroundColor Green
$file.Sage
write-host "The list of student marks in the csv are as follows:" -ForegroundColor Green
$file.Smarks
write-host "The list of student id in the csv are as follows:" -ForegroundColor Green
$file.Sid
write-host "The list of ranks in the csv are as follows:" -ForegroundColor Green
$file.Srank

Çıktı:

Çözüm

Böylece makale PowerShell'deki import-CSV cmdlet'i hakkında ayrıntılı olarak açıklanmıştır. Çeşitli parametreler, veri türü ve sözdizimi hakkında uygun örneklerle birlikte ayrıntılı olarak açıklanmıştır. Daha ayrıntılı bilgi edinmek için örnek komut dosyaları yazmanız ve bunları uygulamanız önerilir.

İlgili makaleler