ConvertFrom-Csv

Konverterar objektegenskaper i kommaavgrä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 skapar objekt från CSV-strängar med variabel längd som genereras av cmdleten ConvertTo-Csv .

Du kan använda parametrarna för den här cmdleten för att ange kolumnrubrikraden, som bestämmer egenskapsnamnen för de resulterande objekten, för att ange objektavgränsaren eller för att dirigera denna cmdlet att använda listavgränsaren för den aktuella kulturen som avgränsare.

De objekt som ConvertFrom-Csv skapas är CSV-versioner av de ursprungliga objekten. Egenskapsvärdena för CSV-objekten är strängversioner av de ursprungliga objektens egenskapsvärden. CSV-versionerna av objekten har inga metoder.

Du kan också använda Export-Csv cmdletarna och Import-Csv för att konvertera objekt till CSV-strängar i en fil (och bakåt). Dessa cmdletar är samma som ConvertTo-Csv cmdletarna och ConvertFrom-Csv förutom att de sparar CSV-strängarna i en fil.

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 till 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 ConvertFrom-CsvHeader för för att ändra namnen på egenskaperna i det resulterande 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åt i pipelinen till 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 sidhuvud som ersätter följande standardvärden: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime och 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 ett 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 de kapslade egenskaperna TextInfo och ListSeparator för att hämta den aktuella kulturens standardlistavgränsare. Cmdleten Get-Service skickar tjänstobjekt längs 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 ConvertFrom-Csv kan inte generera objekt från CSV-strängarna.

Parametrar

-Delimiter

Anger avgränsaren som separerar egenskapsvärdena i CSV-strängarna. Standardvärdet är ett kommatecken (,). Ange ett tecken, till exempel ett kolon (:). Om du vill ange ett semikolon (;) omger du det inom enkla citattecken.

Om du anger ett annat tecken än den faktiska stränggränsaren i filen kan ConvertFrom-Csv du inte skapa objekten från CSV-strängarna och returnerar CSV-strängarna.

Type:Char
Position:1
Default value:comma (,)
Required:False
Accept pipeline input:False
Accept wildcard characters: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 kommaavgränsad lista. Omge inte huvudsträngen inom citattecken. Omger 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 kolumnrubriksträngen från CSV-strängarna. Annars skapar den här cmdleten ett extra objekt från objekten i rubrikraden.

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

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-UseCulture

Använder listavgränsaren för den aktuella kulturen som objektavgränsare. Använd följande kommando för att hitta listavgränsaren för en kultur: (Get-Culture).TextInfo.ListSeparator.

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

Indata

String

Du kan skicka CSV-strängar till den här cmdleten.

Utdata

PSObject

Den här cmdleten returnerar de objekt som beskrivs av egenskaperna i CSV-strängarna.

Kommentarer

Eftersom de importerade objekten är CSV-versioner av objekttypen känns de inte igen och formateras med formateringsposter av PowerShell-typ som formaterar objekttypens icke-CSV-versioner.

I CSV-format representeras varje objekt av en kommaavgränsad lista över objektets egenskapsvärden. Egenskapsvärdena konverteras till strängar (med hjälp av metoden ToString() för objektet, så de representeras av namnet på egenskapsvärdet. Den här cmdleten exporterar inte -metoden för -objektet.