ConvertFrom-Csv
Hiermee worden objecteigenschappen in CSV-indeling (door komma's gescheiden waarden) geconverteerd naar CSV-versies van de oorspronkelijke objecten.
Syntax
Delimiter (Standaard)
ConvertFrom-Csv
[-InputObject] <psobject[]>
[[-Delimiter] <char>]
[-Header <string[]>]
[<CommonParameters>]
UseCulture
ConvertFrom-Csv
[-InputObject] <psobject[]>
-UseCulture
[-Header <string[]>]
[<CommonParameters>]
Description
De ConvertFrom-Csv cmdlet maakt objecten op basis van CSV-tekenreeksen met variabele lengte die door de ConvertTo-Csv cmdlet worden gegenereerd.
U kunt de parameters van deze cmdlet gebruiken om de kolomkopregel op te geven, waarmee de eigenschapsnamen van de resulterende objecten worden bepaald, om het scheidingsteken voor items op te geven of om deze cmdlet opdracht te geven om het lijstscheidingsteken voor de huidige cultuur als scheidingsteken te gebruiken.
De objecten die ConvertFrom-Csv worden gemaakt, zijn CSV-versies van de originele 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 cmdlets en Import-Csv gebruiken om objecten in een bestand (en terug) te converteren naar CSV-tekenreeksen. Deze cmdlets zijn hetzelfde als de ConvertTo-Csv en ConvertFrom-Csv cmdlets, behalve dat ze de CSV-tekenreeksen opslaan in een bestand.
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-Csvte 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-Processwordt uitgevoerd. Er wordt een taakobject naar de pijplijn verzonden naar ConvertTo-Csv en geconverteerd naar een CSV-tekenreeks. De parameter NoTypeInformation verwijdert de header met type-informatie uit de CSV-uitvoer en is optioneel in PowerShell Core. 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-Csvverzonden. 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 kunnen er 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 standaardinstelling 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 opgeeft dan het werkelijke tekenreeksscheidingsteken in het bestand, ConvertFrom-Csv kunt u de objecten niet maken op basis van de CSV-tekenreeksen en worden de CSV-tekenreeksen geretourneerd.
Parametereigenschappen
| Type: | Char |
| Default value: | comma (,) |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
Delimiter
| Position: | 1 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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-Csvzijn gemaakt.
Voer kolomkoppen in als een door komma's gescheiden lijst. Plaats de koptekst 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.
Parametereigenschappen
| Type: | String[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | PSObject[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | True |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
UseCulture
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
String
U kunt CSV-tekenreeksen doorsluizen naar deze cmdlet.
Uitvoerwaarden
PSObject
Met deze cmdlet worden de objecten geretourneerd 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 opmaakitems van het PowerShell-type die de niet-CSV-versies van het objecttype opmaken.
In CSV-indeling wordt elk object weergegeven door een door komma's gescheiden lijst met de eigenschapswaarden van het object. De eigenschapswaarden worden geconverteerd naar tekenreeksen (met behulp van de ToString() -methode van het object), zodat ze worden weergegeven door de naam van de eigenschapswaarde. Deze cmdlet exporteert de methoden van het object niet.