ConvertFrom-Csv
Converteert objecteigenschappen in csv-indeling (door tekens gescheiden waarden) naar CSV-versies van de oorspronkelijke objecten.
Syntaxis
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
ConvertFrom-Csv
-UseCulture
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
Description
Met de cmdlet ConvertFrom-Csv
worden csv-gegevens (door tekens gescheiden waarden) geconverteerd naar PSObject- typeobjecten voor elke regel met CSV-gegevens. De nieuwe objecten worden naar de pijplijn geschreven in de volgorde waarin ze worden gelezen uit de CSV-gegevens. De waarden in de kolomkoprij van het CSV worden de namen van de eigenschappen die worden toegevoegd aan elke nieuwe PSObject.
De objecten die ConvertFrom-Csv
maken, zijn PSObject typeobject voor elke rij in het CSV-bestand. 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 cmdlets Export-Csv
en Import-Csv
gebruiken om objecten te converteren naar CSV-tekenreeksen in een bestand en terug. Deze cmdlets zijn hetzelfde als de ConvertTo-Csv
en ConvertFrom-Csv
cmdlets, behalve dat ze de CSV-tekenreeksen opslaan in een bestand.
Het PSObject type behoudt de volgorde van de eigenschappen in kolomkopvolgorde. Dit betekent dat u dezelfde kolomvolgorde krijgt wanneer u de objecten weer converteert naar CSV-indeling.
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 cmdlet Get-Process
verzendt de processen in de pijplijn naar ConvertTo-Csv
. De cmdlet ConvertTo-Csv
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 een CSV-indeling en vervolgens naar een CSV-objectindeling.
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
De eerste opdracht gebruikt Get-Date
om de huidige datum en tijd van de pijplijn naar ConvertTo-Csv
te verzenden. Met de cmdlet ConvertTo-Csv
wordt het datumobject geconverteerd naar een reeks CSV-tekenreeksen. De parameter scheidingsteken wordt gebruikt om een puntkommascheidingsteken op te geven. De tekenreeksen worden opgeslagen in de variabele $Date
.
Voorbeeld 3: De headerparameter gebruiken om de namen van eigenschappen te wijzigen
In dit voorbeeld ziet u hoe u de parameter Header van ConvertFrom-Csv
kunt gebruiken 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]
Met de cmdlet Start-Job
wordt een achtergrondtaak gestart waarop Get-Process
wordt uitgevoerd. Er wordt een taakobject naar de pijplijn verzonden naar ConvertTo-Csv
en geconverteerd naar een CSV-tekenreeks. De parameter NoTypeInformation verwijdert de typeinformatieheader uit csv-uitvoer en is optioneel in PowerShell v6 en hoger. De variabele $Header
bevat een aangepaste header die de volgende standaardwaarden vervangt: HasMoreData, JobStateInfo, PSBeginTime, PSEndTimeen PSJobTypeName. De $J
variabele bevat de CSV-tekenreeks en wordt gebruikt om de standaardkoptekst te verwijderen. De cmdlet ConvertFrom-Csv
converteert de CSV-tekenreeks naar een PSCustomObject- en gebruikt de parameter Header om de variabele $Header
toe te passen.
Voorbeeld 4: CSV-tekenreeksen van serviceobjecten converteren
In dit voorbeeld ziet u hoe u de cmdlet ConvertFrom-Csv
gebruikt met de parameter UseCulture.
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
De cmdlet Get-Culture
gebruikt de geneste eigenschappen TextInfo en ListSeparator om het standaardlijstscheidingsteken van de huidige cultuur op te halen. Met de cmdlet Get-Service
worden serviceobjecten in de pijplijn naar ConvertTo-Csv
verzonden. De ConvertTo-Csv
converteert de serviceobjecten naar een reeks CSV-tekenreeksen. De CSV-tekenreeksen worden opgeslagen in de $Services
variabele. De ConvertFrom-Csv
-cmdlet maakt gebruik van de parameter InputObject en converteert de CSV-tekenreeksen uit de variabele $Services
. 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 wordt gebruikt in de CSV-tekenreeksen. Anders kan ConvertFrom-Csv
geen objecten genereren 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 werkelijke tekenreeksscheidingsteken in het bestand opgeeft, ConvertFrom-Csv
de objecten niet kunt maken op basis van de CSV-tekenreeksen en de CSV-tekenreeksen retourneert.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Header
Hiermee geeft u een alternatieve kolomkoprij voor de geïmporteerde tekenreeks op. De kolomkop bepaalt de eigenschapsnamen van de objecten die door ConvertFrom-Csv
zijn gemaakt.
Voer kolomkoppen in als een door tekens 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 parameter header 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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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 doorsluizen naar ConvertFrom-Csv
.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-UseCulture
Hiermee gebruikt u het lijstscheidingsteken voor de huidige cultuur als het 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 |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt CSV-tekenreeksen doorsluizen naar deze cmdlet.
Uitvoerwaarden
Met deze cmdlet worden de objecten geretourneerd die worden beschreven door de eigenschappen in de CSV-tekenreeksen.
Notities
In CSV-indeling wordt elk object vertegenwoordigd door een door tekens gescheiden lijst met de eigenschapswaarden van het object. De eigenschapswaarden worden geconverteerd naar tekenreeksen met behulp van de ToString()
methode van het object. Er is geen manier om de methoden van het object te exporteren.