ConvertFrom-Csv
Konverterar objektegenskaper i teckenavgränsat värdeformat (CSV) till CSV-versioner av de ursprungliga objekten.
Syntax
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
ConvertFrom-Csv
-UseCulture
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
Description
Cmdleten ConvertFrom-Csv
konverterar csv-data (character-separated value) till PSObject typobjekt för varje rad med CSV-data. De nya objekten skrivs till pipelinen i den ordning de läss från CSV-data. Värdena i kolumnrubrikraden i CSV blir namnen på egenskaperna som läggs till i varje ny PSObject-.
De objekt som ConvertFrom-Csv
skapar är PSObject typobjekt för varje rad i CSV-filen. Egenskapsvärdena för CSV-objekten är strängversioner av egenskapsvärdena för de ursprungliga objekten. CSV-versionerna av objekten har inga metoder.
Du kan också använda cmdletarna Export-Csv
och Import-Csv
för att konvertera objekt till CSV-strängar i en fil och bakåt. Dessa cmdletar är samma som cmdletarna ConvertTo-Csv
och ConvertFrom-Csv
, förutom att de sparar CSV-strängarna i en fil.
PSObject- typ upprätthåller egenskapernas ordning i kolumnrubrikordning. Det innebär att du får samma kolumnordning när du konverterar objekten tillbaka till CSV-format.
Exempel
Exempel 1: Konvertera processer på den lokala datorn till CSV-format
Det här exemplet visar hur du konverterar processerna på den lokala datorn till CSV-format och sedan återställer dem till objektformulär.
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
Cmdleten Get-Process
skickar processerna nedåt i pipelinen för att ConvertTo-Csv
. Cmdleten ConvertTo-Csv
konverterar processobjekten till en serie CSV-strängar. Cmdleten ConvertFrom-Csv
konverterar CSV-strängarna till CSV-versioner av de ursprungliga processobjekten.
CSV-strängarna sparas i variabeln $P
.
Exempel 2: Konvertera ett dataobjekt till CSV-format och sedan till CSV-objektformat
Det här exemplet visar hur du konverterar ett dataobjekt till CSV-format och sedan till CSV-objektformat.
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
Det första kommandot använder Get-Date
för att skicka aktuellt datum och tid nedåt i pipelinen till ConvertTo-Csv
. Cmdleten ConvertTo-Csv
konverterar datumobjektet till en serie CSV-strängar. Parametern Avgränsare används för att ange en semikolongränsare. Strängarna sparas i variabeln $Date
.
Exempel 3: Använd rubrikparametern för att ändra namnen på egenskaperna
Det här exemplet visar hur du använder parametern Rubrik för ConvertFrom-Csv
för att ändra namnen på egenskaperna i det importerade objektet.
$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]
Cmdleten Start-Job
startar ett bakgrundsjobb som kör Get-Process
. Ett jobbobjekt skickas ned i pipelinen för att ConvertTo-Csv
och konverteras till en CSV-sträng. Parametern NoTypeInformation tar bort typinformationshuvudet från CSV-utdata och är valfri i PowerShell v6 och senare. Variabeln $Header
innehåller ett anpassat huvud som ersätter följande standardvärden: HasMoreData, JobStateInfo, PSBeginTime, PSEndTimeoch PSJobTypeName. Variabeln $J
innehåller CSV-strängen och används för att ta bort standardrubriken. Cmdleten ConvertFrom-Csv
konverterar CSV-strängen till en PSCustomObject- och använder parametern Header för att tillämpa variabeln $Header
.
Exempel 4: Konvertera CSV-strängar för tjänstobjekt
Det här exemplet visar hur du använder cmdleten ConvertFrom-Csv
med parametern UseCulture.
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
Cmdleten Get-Culture
använder kapslade egenskaper TextInfo och ListSeparator för att hämta den aktuella kulturens standardlistavgränsare. Cmdleten Get-Service
skickar tjänstobjekt ned i pipelinen till ConvertTo-Csv
.
ConvertTo-Csv
konverterar tjänstobjekten till en serie CSV-strängar. CSV-strängarna lagras i variabeln $Services
. Cmdleten ConvertFrom-Csv
använder parametern InputObject och konverterar CSV-strängarna från variabeln $Services
. Parametern UseCulture använder den aktuella kulturens standardlistavgränsare.
När parametern UseCulture används kontrollerar du att den aktuella kulturens standardlistavgränsare matchar avgränsaren som används i CSV-strängarna. Annars kan ConvertFrom-Csv
inte generera objekt från CSV-strängarna.
Parametrar
-Delimiter
Anger avgränsaren som avgränsar egenskapsvärdena i CSV-strängarna. Standardvärdet är ett kommatecken (,
). Ange ett tecken, till exempel ett kolon (:
). Om du vill ange ett semikolon (;
) omges det av enkla citattecken.
Om du anger ett annat tecken än den faktiska stränggränsaren i filen kan ConvertFrom-Csv
inte skapa objekten från CSV-strängarna och returnerar CSV-strängarna.
Typ: | Char |
Position: | 1 |
Standardvärde: | comma (,) |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Header
Anger en alternativ kolumnrubrikrad för den importerade strängen. Kolumnrubriken avgör egenskapsnamnen för de objekt som skapats av ConvertFrom-Csv
.
Ange kolumnrubriker som en teckenavgränsad lista. omslut inte rubriksträngen inom citattecken. Omslut varje kolumnrubrik inom enkla citattecken.
Om du anger färre kolumnrubriker än det finns datakolumner ignoreras de återstående datakolumnerna. Om du anger fler kolumnrubriker än det finns datakolumner skapas de ytterligare kolumnrubrikerna med tomma datakolumner.
När du använder parametern Header utelämnar du kolumnhuvudsträngen från CSV-strängarna. Annars skapar den här cmdleten ett extra objekt från objekten i rubrikraden.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-InputObject
Anger de CSV-strängar som ska konverteras till objekt. Ange en variabel som innehåller CSV-strängarna eller skriv ett kommando eller uttryck som hämtar CSV-strängarna. Du kan också skicka CSV-strängarna till ConvertFrom-Csv
.
Typ: | PSObject[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-UseCulture
Använder listavgränsaren för den aktuella kulturen som objektavgränsare. Om du vill hitta listavgränsaren för en kultur använder du följande kommando: (Get-Culture).TextInfo.ListSeparator
.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka CSV-strängar till den här cmdleten.
Utdata
Den här cmdleten returnerar de objekt som beskrivs av egenskaperna i CSV-strängarna.
Kommentarer
I CSV-format representeras varje objekt av en teckenavgränsad lista över objektets egenskapsvärden. Egenskapsvärdena konverteras till strängar med hjälp av objektets ToString()
-metod. Det finns inget sätt att exportera objektmetoderna.