CSV sınırlayıcı PowerShell'i içe aktar
PowerShell'de neden CSV içe aktarma (virgülle ayrılmış değerler) sınırlayıcısını kullanmamız gerekiyor? Varsayılan olarak PowerShell sınırlayıcı olarak virgül kullanır. CSV dosyasında virgülden farklı bir sınırlayıcı mı kullanıyorsunuz? Cevabınız evet ise PowerShell'deki sınırlayıcı parametresini kullanmanız gerekir. Bu makalede PowerShell'de Import-Csv sınırlayıcısıyla nasıl çalışılacağını öğreneceksiniz.
Bilgi
CSV dosyası PowerShell ile mükemmel bir kombinasyondur. Import-Csv cmdlet'i, CSV dosyalarındaki öğelerden tablo benzeri özel nesneler oluşturur. CSV dosyasındaki her sütun, özel nesnenin bir özelliği haline gelir ve satırlardaki öğeler özellik değerleri haline gelir. Import-Csv, Export-Csv cmdlet'i tarafından oluşturulan dosyalar da dahil olmak üzere herhangi bir CSV dosyasında çalışır.
PowerShell ile CSV'den Active Directory Kullanıcıları Oluşturmak için bir PowerShell betiği çalıştırmayı seviyoruz. Komut dosyasını çalıştırdıktan sonra bir hata görünüyor.
PS C:\Scripts> .\Add-NewUsers.ps1
Get-ADUser : Variable: 'Username' found in expression: $Username is not defined.
At C:\scripts\Add-NewUsers.ps1:31 char:6
+ if (Get-ADUser -F {SamAccountName -eq $Username})
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ADUser], ArgumentExceptionNeden oluyor?
Bazı Avrupa elektronik tablo programları, CSV dosyalarındaki veri alanlarını ayırmak (sınırlamak) için virgül yerine noktalı virgül kullanır. CSV içe aktarma işlemlerinde sorunlara neden olabilir.
Karakterleri ayırma:
-
Noktalı virgül:
; Virgül:
,
PowerShell'de Import-Csv cmdlet'ini kontrol edin
NewUsersFinal.csv dosyasını indirin ve C:\Temp\ klasörüne yerleştirin. Import-Csv cmdlet'ini kullanın. PowerShell'de sütunları görmüyorsanız CSV dosyasını düzgün okuyamıyor demektir.
PS C:\> Import-Csv "C:\Temp\NewUsersFinal.csv" | Format-Table
FirstName;Initials;Lastname;Username;Email;StreetAddress;City;ZipCode;State;Country;Department;Password;Telephone;JobTitle;Company;OU
-------------------------------------------------------------------------------------------------------------------------------------
Max;MF;Fraser;Max.Fraser;Max.Fraser@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;Q+/7_]Tc;44123456780;Engineer;EXOIP;OU=IT
Piers;PB;Bower;Piers.Bower;Piers.Bower@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;RW-cn3N);44123456781;Manager;EXOIP;OU=IT
Kylie;KD;Davidson;Kylie.Davidson;Kylie.Davidson@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;3VKr2.Wm;44123456782;Engineer;EXOIP;OU=IT
Richard;RG;Grant;Richard.Grant;Richard.Grant@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;)N3ZYJvS;44123456783;Teamleader;EXOIP;OU=IT
Boris;BC;Campbell;Boris.Campbell;Boris.Campbell@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;9ZesQ]pq;44123456784;Engineer;EXOIP;OU=IT
Nicholas;NM;Murray;Nicholas.Murray;Nicholas.Murray@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;KX*rB72p;44123456785;Manager;EXOIP;OU=IT
Leonard;LC;Clark;Leonard.Clark;Leonard.Clark@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;AJ+(}c3$;44123456786;Engineer;EXOIP;OU=IT
Ruth;RD;Dickens;Ruth.Dickens;Ruth.Dickens@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;Jgv4{Bb$;44123456787;Engineer;EXOIP;OU=IT
Jonathan;JF;Fisher;Jonathan.Fisher;Johnathan.Fisher@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;u*PQJAx5;44123456788;Engineer;EXOIP;OU=IT
Grace;GR;Rees;Grace.Rees;Grace.Rees@exoip.com;21 Baker St;London;NW1 6XE;;United Kingdom;IT;w([6p&Kt;44123456789;Engineer;EXOIP;OU=ITÇıktıda tüm bilgileri göremiyorsanız Out-GridView cmdlet'ini kullanın.
PS C:\> Import-Csv "C:\Temp\NewUsersFinal.csv" | Out-GridViewAşağıdaki ekrandaki gibi görünecektir.
-Delimiter “;” sınırlayıcı parametresini Import-Csv cmdlet'ine ekleyin.
PS C:\> Import-Csv "C:\Temp\NewUsersFinal.csv" -Delimiter ";" | Format-Table
FirstName Initials Lastname Username Email StreetAddress City ZipCode State Country
--------- -------- -------- -------- ----- ------------- ---- ------- ----- -------
Max MF Fraser Max.Fraser Max.Fraser@exoip.com 21 Baker St London NW1 6XE United Kingdom
Piers PB Bower Piers.Bower Piers.Bower@exoip.com 21 Baker St London NW1 6XE United Kingdom
Kylie KD Davidson Kylie.Davidson Kylie.Davidson@exoip.com 21 Baker St London NW1 6XE United Kingdom
Richard RG Grant Richard.Grant Richard.Grant@exoip.com 21 Baker St London NW1 6XE United Kingdom
Boris BC Campbell Boris.Campbell Boris.Campbell@exoip.com 21 Baker St London NW1 6XE United Kingdom
Nicholas NM Murray Nicholas.Murray Nicholas.Murray@exoip.com 21 Baker St London NW1 6XE United Kingdom
Leonard LC Clark Leonard.Clark Leonard.Clark@exoip.com 21 Baker St London NW1 6XE United Kingdom
Ruth RD Dickens Ruth.Dickens Ruth.Dickens@exoip.com 21 Baker St London NW1 6XE United Kingdom
Jonathan JF Fisher Jonathan.Fisher Johnathan.Fisher@exoip.com 21 Baker St London NW1 6XE United Kingdom
Grace GR Rees Grace.Rees Grace.Rees@exoip.com 21 Baker St London NW1 6XE United KingdomYine bu sefer Out-GridView cmdlet'iyle.
Import-Csv cmdlet'ine sınırlayıcı parametresi ekleyin
Önceki adımda görüldüğü gibi CSV dosyası noktalı virgül karakterini aldı. -Delimiter “;” sınırlayıcı parametresini Import-Csv cmdlet'ine eklemeliyiz.
Önce
$ADUsers = Import-csv "C:\scripts\NewUsersFinal.csv"Sonra
$ADUsers = Import-csv "C:\scripts\NewUsersFinal.csv" -Delimiter ";"Komut dosyasını çalıştırın, beklendiği gibi çalışacaktır. Bu sana yardımcı oldu mu?
Okumaya devam edin: Posta kutularının listesini Exchange'de CSV'ye aktarın »
Çözüm
Bu makalede, CSV sınırlayıcısını PowerShell ile nasıl içe aktaracağınızı öğrendiniz. CSV dosyanızı kontrol edin ve Import-Csv cmdlet'inizi sınırlayıcı parametresiyle ayarlayın. Betiği çalıştırmadan önce CSV'yi PowerShell'e aktarmak her zaman iyidir. Bu şekilde CSV dosyasının okunabilir olup olmadığını bilirsiniz!
Bu makaleyi beğendiniz mi? Öyleyse New-MailboxExportRequest Exchange Server'da tanınmıyor makalesini beğenebilirsiniz. Bizi takip etmeyi ve bu yazımızı paylaşmayı unutmayın.

