ConvertFrom-Csv
Mengonversi properti objek dalam format nilai yang dipisahkan karakter (CSV) menjadi versi CSV dari objek asli.
Sintaks
Delimiter (Default)
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
UseCulture
ConvertFrom-Csv
[-InputObject] <PSObject[]>
-UseCulture
[-Header <String[]>]
[<CommonParameters>]
Deskripsi
Cmdlet ConvertFrom-Csv mengonversi data nilai yang dipisahkan karakter (CSV) menjadi objek jenis PSObject untuk setiap baris data CSV. Objek baru ditulis ke alur dalam urutan dibaca dari data CSV. Nilai dalam baris header kolom CSV menjadi nama properti yang ditambahkan ke setiap baru PSObject.
Objek yang ConvertFrom-Csv buat objek jenis PSObject untuk setiap baris dalam file CSV. Nilai properti objek CSV adalah versi string dari nilai properti objek asli. Versi CSV objek tidak memiliki metode apa pun.
Anda juga dapat menggunakan cmdlet Export-Csv dan Import-Csv untuk mengonversi objek ke string CSV dalam file dan kembali. Cmdlet ini sama dengan cmdlet ConvertTo-Csv dan ConvertFrom-Csv, kecuali bahwa cmdlet menyimpan string CSV dalam file.
Jenis PSObject mempertahankan urutan properti dalam urutan header kolom. Ini berarti Anda mendapatkan urutan kolom yang sama saat mengonversi objek kembali ke format CSV.
Contoh
Contoh 1: Mengonversi proses di komputer lokal ke format CSV
Contoh ini menunjukkan cara mengonversi proses di komputer lokal menjadi format CSV lalu memulihkannya ke formulir objek.
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
Cmdlet Get-Process mengirimkan proses ke alur ke ConvertTo-Csv. cmdlet ConvertTo-Csv mengonversi objek proses menjadi serangkaian string CSV. cmdlet ConvertFrom-Csv mengonversi string CSV menjadi versi CSV dari objek proses asli.
String CSV disimpan dalam variabel $P.
Contoh 2: Mengonversi objek data ke format CSV lalu ke format objek CSV
Contoh ini menunjukkan cara mengonversi objek data ke format CSV lalu ke format objek CSV.
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
Perintah pertama menggunakan Get-Date untuk mengirim tanggal dan waktu saat ini ke alur ke ConvertTo-Csv. cmdlet ConvertTo-Csv mengonversi objek tanggal menjadi serangkaian string CSV. Parameter pemisah digunakan untuk menentukan pemisah titik koma. String disimpan dalam variabel $Date.
Contoh 3: Gunakan parameter header untuk mengubah nama properti
Contoh ini menunjukkan cara menggunakan parameter HeaderConvertFrom-Csv untuk mengubah nama properti dalam objek yang diimpor yang dihasilkan.
$J = Start-Job -ScriptBlock { Get-Process } | ConvertTo-Csv -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command',
'StateInfo', 'Finished', 'InstanceId', 'Id', 'Name', 'ChildJobs',
'BeginTime', 'EndTime', 'JobType', 'Output', 'Error', 'Progress',
'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from $J
$J = $J[1..($J.Count - 1)]
$J | ConvertFrom-Csv -Header $Header
State : Running
MoreData : True
StatusMessage :
Location : localhost
Command : Get-Process
StateInfo : Running
Finished : System.Threading.ManualResetEvent
InstanceId : a259eb63-6824-4b97-a033-305108ae1c2e
Id : 1
Name : Job1
ChildJobs : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime : 12/20/2018 18:59:57
EndTime :
JobType : BackgroundJob
Output : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose : System.Management.Automation.PSDataCollection`1[System.Management.Automation.VerboseRecord]
Debug : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]
Cmdlet Start-Job memulai pekerjaan latar belakang yang berjalan Get-Process. Objek pekerjaan dikirimkan alur ke ConvertTo-Csv dan dikonversi ke string CSV. Parameter NoTypeInformation menghapus header informasi jenis dari output CSV dan bersifat opsional di PowerShell v6 dan yang lebih tinggi. Variabel $Header berisi header kustom yang menggantikan nilai default berikut: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime, dan PSJobTypeName. Variabel $J berisi string CSV dan digunakan untuk menghapus header default. Cmdlet ConvertFrom-Csv mengonversi string CSV menjadi PSCustomObject dan menggunakan parameter Header untuk menerapkan variabel $Header.
Contoh 4: Mengonversi string CSV objek layanan
Contoh ini menunjukkan cara menggunakan cmdlet ConvertFrom-Csv dengan parameter UseCulture.
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
Cmdlet Get-Culture menggunakan properti berlapis TextInfo dan ListSeparator untuk mendapatkan pemisah daftar default budaya saat ini. Cmdlet Get-Service mengirim objek layanan ke bawah alur ke ConvertTo-Csv.
ConvertTo-Csv mengonversi objek layanan menjadi serangkaian string CSV. String CSV disimpan dalam variabel $Services. Cmdlet ConvertFrom-Csv menggunakan parameter InputObject dan mengonversi string CSV dari variabel $Services. Parameter UseCulture menggunakan pemisah daftar default budaya saat ini.
Ketika parameter UseCulture digunakan, pastikan bahwa pemisah daftar default budaya saat ini cocok dengan pemisah yang digunakan dalam string CSV. Jika tidak, ConvertFrom-Csv tidak dapat menghasilkan objek dari string CSV.
Contoh 5: Mengonversi data CSV dalam Format Log Yang Diperluas W3C
Contoh ini menunjukkan cara mengonversi data CSV dalam Format Log Yang Diperluas W3C ke objek.
$logData = @"
#Version: 1.0
#Date: 12-Jan-1996 00:00:00
#Fields: time,cs-method,cs-uri
00:34:23,GET,/foo/bar.html
12:21:16,GET,/foo/bar.html
12:45:52,GET,/foo/bar.html
12:57:34,GET,/foo/bar.html
"@
ConvertFrom-Csv $logData
time cs-method cs-uri
---- --------- ------
00:34:23 GET /foo/bar.html
12:21:16 GET /foo/bar.html
12:45:52 GET /foo/bar.html
12:57:34 GET /foo/bar.html
Parameter
-Delimiter
Menentukan pemisah yang memisahkan nilai properti dalam string CSV. Defaultnya adalah koma (,). Masukkan karakter, seperti titik dua (:). Untuk menentukan titik koma (;) sertakan dalam tanda kutip tunggal.
Jika Anda menentukan karakter selain pemisah string aktual dalam file, ConvertFrom-Csv tidak dapat membuat objek dari string CSV dan mengembalikan string CSV.
Properti parameter
| Jenis: | Char |
| Nilai default: | comma (,) |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
Delimiter
| Position: | 1 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Header
Menentukan baris header kolom alternatif untuk string yang diimpor. Header kolom menentukan nama properti objek yang dibuat oleh ConvertFrom-Csv.
Masukkan header kolom sebagai daftar yang dipisahkan karakter. jangan sertakan string header dalam tanda kutip. Sertakan setiap header kolom dalam tanda kutip tunggal.
Jika Anda memasukkan lebih sedikit header kolom daripada kolom data, kolom data yang tersisa akan dibuang. Jika Anda memasukkan lebih banyak header kolom daripada kolom data, header kolom tambahan dibuat dengan kolom data kosong.
Saat menggunakan parameter Header, hilangkan string header kolom dari string CSV. Jika tidak, cmdlet ini membuat objek tambahan dari item di baris header.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-InputObject
Menentukan string CSV yang akan dikonversi ke objek. Masukkan variabel yang berisi string CSV atau ketik perintah atau ekspresi yang mendapatkan string CSV. Anda juga dapat menyalurkan string CSV ke ConvertFrom-Csv.
Properti parameter
| Jenis: | PSObject[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | True |
| Nilai dari argumen yang tersisa: | False |
-UseCulture
Menggunakan pemisah daftar untuk budaya saat ini sebagai pemisah item. Untuk menemukan pemisah daftar untuk budaya, gunakan perintah berikut: (Get-Culture).TextInfo.ListSeparator.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
UseCulture
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
String
Anda dapat menyalurkan string CSV ke cmdlet ini.
Output
PSObject
Cmdlet ini mengembalikan objek yang dijelaskan oleh properti dalam string CSV.
Catatan
Dalam format CSV, setiap objek diwakili oleh daftar nilai properti objek yang dipisahkan karakter. Nilai properti dikonversi menjadi string, menggunakan metode ToString() objek. Tidak ada cara untuk mengekspor metode objek.
ConvertFrom-Csv juga mendukung format W3C Extended Log. Baris yang dimulai dengan karakter hash (#) diperlakukan sebagai komentar dan diabaikan kecuali komentar dimulai dengan #Fields: dan berisi daftar nama kolom yang dibatasi koma. Dalam hal ini, cmdlet menggunakan nama kolom tersebut. Ini adalah format standar untuk Windows IIS dan log server web lainnya. Untuk informasi selengkapnya, lihat Format File Log yang Diperluas.