ConvertFrom-Csv

Mengonversi properti objek dalam format nilai yang dipisahkan koma (CSV) menjadi versi CSV dari objek asli.

Sintaks

ConvertFrom-Csv
                [[-Delimiter] <Char>]
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]
ConvertFrom-Csv
                -UseCulture
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]

Deskripsi

ConvertFrom-Csv Cmdlet membuat objek dari string panjang variabel CSV yang dihasilkan oleh ConvertTo-Csv cmdlet .

Anda dapat menggunakan parameter cmdlet ini untuk menentukan baris header kolom, yang menentukan nama properti objek yang dihasilkan, untuk menentukan pemisah item, atau untuk mengarahkan cmdlet ini untuk menggunakan pemisah daftar untuk budaya saat ini sebagai pemisah.

Objek yang ConvertFrom-Csv dibuat adalah versi CSV dari objek asli. Nilai properti objek CSV adalah versi string dari nilai properti objek asli. Versi CSV objek tidak memiliki metode apa pun.

Anda juga dapat menggunakan Export-Csv cmdlet dan Import-Csv untuk mengonversi objek ke string CSV dalam file (dan kembali). Cmdlet ini sama ConvertTo-Csv dengan cmdlet dan ConvertFrom-Csv , kecuali bahwa cmdlet menyimpan string CSV dalam file.

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

Get-Process Cmdlet mengirimkan proses ke alur ke ConvertTo-Csv. ConvertTo-Csv Cmdlet mengonversi objek proses menjadi serangkaian string CSV. ConvertFrom-Csv Cmdlet mengonversi string CSV menjadi versi CSV dari objek proses asli. String CSV disimpan dalam $P variabel .

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. ConvertTo-Csv Cmdlet mengonversi objek tanggal menjadi serangkaian string CSV. Parameter Pemisah digunakan untuk menentukan pemisah titik koma. String disimpan dalam $Date variabel .

Contoh 3: Gunakan parameter header untuk mengubah nama properti

Contoh ini menunjukkan cara menggunakan parameter ConvertFrom-CsvHeader 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]

Start-Job Cmdlet memulai pekerjaan latar belakang yang berjalan Get-Process. Objek pekerjaan dikirim ke 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. ConvertFrom-Csv Cmdlet mengonversi string CSV menjadi PSCustomObject dan menggunakan parameter Header untuk menerapkan $Header variabel.

Contoh 4: Mengonversi string CSV objek layanan

Contoh ini menunjukkan cara menggunakan ConvertFrom-Csv cmdlet dengan parameter UseCulture .

(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture

Get-Culture Cmdlet menggunakan properti berlapis TextInfo dan ListSeparator untuk mendapatkan pemisah daftar default budaya saat ini. Get-Service Cmdlet mengirim objek layanan ke bawah alur ke ConvertTo-Csv. mengonversi ConvertTo-Csv objek layanan menjadi serangkaian string CSV. String CSV disimpan dalam $Services variabel . ConvertFrom-Csv Cmdlet menggunakan parameter InputObject dan mengonversi string CSV dari $Services variabel. Parameter UseCulture menggunakan pemisah daftar default budaya saat ini.

Saat 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.

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 akan mengembalikan string CSV.

Type:Char
Position:1
Default value:comma (,)
Accept pipeline input:False
Accept wildcard characters: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 koma. 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.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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.

Type:PSObject[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Input

String

Anda dapat menyalurkan string CSV ke cmdlet ini.

Output

PSObject

Cmdlet ini mengembalikan objek yang dijelaskan oleh properti dalam string CSV.

Catatan

Karena objek yang diimpor adalah versi CSV dari jenis objek, objek tersebut tidak dikenali dan diformat oleh entri pemformatan jenis PowerShell yang memformat versi non-CSV dari jenis objek.

Dalam format CSV, setiap objek diwakili oleh daftar nilai properti objek yang dipisahkan koma. Nilai properti dikonversi menjadi string (dengan menggunakan metode ToString() objek , sehingga diwakili oleh nama nilai properti. Cmdlet ini tidak mengekspor metode objek.