ConvertFrom-Csv

Converteert objecteigenschappen in csv-indeling (door komma's gescheiden waarden) naar CSV-versies van de oorspronkelijke objecten.

Syntax

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

Description

De ConvertFrom-Csv cmdlet maakt objecten van CSV-tekenreeksen met variabele lengte die worden gegenereerd door de ConvertTo-Csv cmdlet.

U kunt de parameters van deze cmdlet gebruiken om de kolomkoprij op te geven, waarmee de eigenschapsnamen van de resulterende objecten worden bepaald, het itemscheidingsteken moet worden opgegeven of om deze cmdlet om te leiden om het lijstscheidingsteken voor de huidige cultuur als scheidingsteken te gebruiken.

De objecten die ConvertFrom-Csv worden gemaakt, zijn CSV-versies van de oorspronkelijke objecten. De eigenschapswaarden van de CSV-objecten zijn tekenreeksversies van de eigenschapswaarden van de oorspronkelijke objecten. De CSV-versies van de objecten hebben geen methoden.

U kunt ook de Export-Csv en Import-Csv cmdlets gebruiken om objecten te converteren naar CSV-tekenreeksen in een bestand (en terug). Deze cmdlets zijn hetzelfde als de ConvertTo-Csv cmdlets en ConvertFrom-Csv cmdlets, behalve dat ze de CSV-tekenreeksen in een bestand opslaan.

Voorbeelden

Voorbeeld 1: Processen op de lokale computer converteren naar CSV-indeling

In dit voorbeeld ziet u hoe u de processen op de lokale computer converteert naar CSV-indeling en deze vervolgens herstelt naar objectformulier.

$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv

De Get-Process cmdlet verzendt de processen naar de pijplijn.ConvertTo-Csv De ConvertTo-Csv cmdlet converteert de procesobjecten naar een reeks CSV-tekenreeksen. De ConvertFrom-Csv cmdlet converteert de CSV-tekenreeksen naar CSV-versies van de oorspronkelijke procesobjecten. De CSV-tekenreeksen worden opgeslagen in de $P variabele.

Voorbeeld 2: Een gegevensobject converteren naar CSV-indeling en vervolgens naar CSV-objectindeling

In dit voorbeeld ziet u hoe u een gegevensobject converteert naar CSV-indeling en vervolgens naar CSV-objectindeling.

$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'

Met de eerste opdracht Get-Date wordt de huidige datum en tijd naar de pijplijn verzonden ConvertTo-Csv. De ConvertTo-Csv cmdlet converteert het datumobject naar een reeks CSV-tekenreeksen. De parameter Scheidingsteken wordt gebruikt om een puntkommascheidingsteken op te geven. De tekenreeksen worden opgeslagen in de $Date variabele.

Voorbeeld 3: De headerparameter gebruiken om de namen van eigenschappen te wijzigen

In dit voorbeeld ziet u hoe u de headerparameterConvertFrom-Csv gebruikt om de namen van eigenschappen in het resulterende geïmporteerde object te wijzigen.

$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]

De Start-Job cmdlet start een achtergrondtaak die wordt uitgevoerd Get-Process. Een taakobject wordt naar de pijplijn ConvertTo-Csv verzonden en geconverteerd naar een CSV-tekenreeks. De parameter NoTypeInformation verwijdert de typeinformatieheader uit de CSV-uitvoer en is optioneel in PowerShell v6 en hoger. De $Header variabele bevat een aangepaste header die de volgende standaardwaarden vervangt: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime en PSJobTypeName. De $J variabele bevat de CSV-tekenreeks en wordt gebruikt om de standaardkoptekst te verwijderen. De ConvertFrom-Csv cmdlet converteert de CSV-tekenreeks naar een PSCustomObject en gebruikt de headerparameter om de $Header variabele toe te passen.

Voorbeeld 4: CSV-tekenreeksen van serviceobjecten converteren

In dit voorbeeld ziet u hoe u de ConvertFrom-Csv cmdlet gebruikt met de parameter UseCulture .

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

De Get-Culture cmdlet gebruikt de geneste eigenschappen TextInfo en ListSeparator om het standaardlijstscheidingsteken van de huidige cultuur op te halen. De Get-Service cmdlet verzendt serviceobjecten omlaag in de pijplijn naar ConvertTo-Csv. Hiermee ConvertTo-Csv worden de serviceobjecten geconverteerd naar een reeks CSV-tekenreeksen. De CSV-tekenreeksen worden opgeslagen in de $Services variabele. De ConvertFrom-Csv cmdlet gebruikt de parameter InputObject en converteert de CSV-tekenreeksen uit de $Services variabele. De parameter UseCulture maakt gebruik van het standaardlijstscheidingsteken van de huidige cultuur.

Wanneer de parameter UseCulture wordt gebruikt, moet u ervoor zorgen dat het standaardlijstscheidingsteken van de huidige cultuur overeenkomt met het scheidingsteken dat in de CSV-tekenreeksen wordt gebruikt. Anders kunnen ConvertFrom-Csv geen objecten worden gegenereerd op basis van de CSV-tekenreeksen.

Parameters

-Delimiter

Hiermee geeft u het scheidingsteken op waarmee de eigenschapswaarden in de CSV-tekenreeksen worden gescheiden. De standaardwaarde is een komma (,). Voer een teken in, zoals een dubbele punt (:). Als u een puntkomma (;) wilt opgeven, plaatst u deze tussen enkele aanhalingstekens.

Als u een ander teken dan het tekenscheidingsteken in het bestand opgeeft, ConvertFrom-Csv kunt u de objecten niet maken op basis van de CSV-tekenreeksen en worden de CSV-tekenreeksen geretourneerd.

Type:Char
Position:1
Default value:comma (,)
Accept pipeline input:False
Accept wildcard characters:False
-Header

Hiermee geeft u een alternatieve kolomkoprij voor de geïmporteerde tekenreeks op. De kolomkop bepaalt de eigenschapsnamen van de objecten die zijn gemaakt door ConvertFrom-Csv.

Voer kolomkoppen in als een door komma's gescheiden lijst. Plaats de kopteksttekenreeks niet tussen aanhalingstekens. Plaats elke kolomkop tussen enkele aanhalingstekens.

Als u minder kolomkoppen invoert dan er gegevenskolommen zijn, worden de resterende gegevenskolommen verwijderd. Als u meer kolomkoppen invoert dan er gegevenskolommen zijn, worden de extra kolomkoppen gemaakt met lege gegevenskolommen.

Wanneer u de headerparameter gebruikt, laat u de kolomkoptekenreeks weg uit de CSV-tekenreeksen. Anders maakt deze cmdlet een extra object op basis van de items in de veldnamenrij.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-InputObject

Hiermee geeft u de CSV-tekenreeksen die moeten worden geconverteerd naar objecten. Voer een variabele in die de CSV-tekenreeksen bevat of typ een opdracht of expressie die de CSV-tekenreeksen ophaalt. U kunt de CSV-tekenreeksen ook doorsluisen naar ConvertFrom-Csv.

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

Hiermee gebruikt u het lijstscheidingsteken voor de huidige cultuur als scheidingsteken voor items. Gebruik de volgende opdracht om het lijstscheidingsteken voor een cultuur te vinden: (Get-Culture).TextInfo.ListSeparator

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

Invoerwaarden

String

U kunt CSV-tekenreeksen doorsluisen naar deze cmdlet.

Uitvoerwaarden

PSObject

Deze cmdlet retourneert de objecten die worden beschreven door de eigenschappen in de CSV-tekenreeksen.

Notities

Omdat de geïmporteerde objecten CSV-versies van het objecttype zijn, worden ze niet herkend en opgemaakt door de opmaakvermeldingen van het PowerShell-type die de niet-CSV-versies van het objecttype opmaken.

In CSV-indeling wordt elk object vertegenwoordigd door een door komma's gescheiden lijst met de eigenschapswaarden van het object. De eigenschapswaarden worden geconverteerd naar tekenreeksen (met behulp van de methode ToString() van het object, zodat ze worden vertegenwoordigd door de naam van de eigenschapswaarde. Met deze cmdlet worden de methoden van het object niet geëxporteerd.