ConvertFrom-Csv
Converteert objecteigenschappen in csv-indeling (door komma's gescheiden waarden) naar CSV-versies van de oorspronkelijke objecten.
Syntax
ConvertFrom-Csv
[-InputObject] <psobject[]>
[[-Delimiter] <char>]
[-Header <string[]>]
[<CommonParameters>]
ConvertFrom-Csv
[-InputObject] <psobject[]>
-UseCulture
[-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, om het itemscheidingsteken op te geven of om deze cmdlet te laten instellen dat het lijstscheidingsteken voor de huidige cultuur als scheidingsteken wordt gebruikt.
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
cmdlets en Import-Csv
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
, 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 een CSV-indeling en deze vervolgens terugzet naar een objectformulier.
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
De Get-Process
cmdlet verzendt de processen in de pijplijn naar 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 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 te ConvertTo-Csv
verzenden. De ConvertTo-Csv
cmdlet converteert het datumobject naar een reeks CSV-tekenreeksen.
De parameter Delimiter wordt gebruikt om een puntkomma-scheidingsteken 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 parameter Header van ConvertFrom-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 header van de typegegevens uit de CSV-uitvoer en is optioneel in PowerShell Core. 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 standaardheader te verwijderen. De ConvertFrom-Csv
cmdlet converteert de CSV-tekenreeks naar een PSCustomObject en gebruikt de parameter Header 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 in de pijplijn naar ConvertTo-Csv
. De ConvertTo-Csv
converteert de serviceobjecten 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 van de $Services
variabele. De parameter UseCulture gebruikt 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. ConvertFrom-Csv
Anders kunnen er geen objecten worden gegenereerd op basis van de CSV-tekenreeksen.
Parameters
-Delimiter
Hiermee geeft u het scheidingsteken op dat de eigenschapswaarden in de CSV-tekenreeksen scheidt. De standaardwaarde is een komma (,).
Voer een teken in, zoals een dubbele punt (:). Als u een puntkomma (;) plaatst u deze tussen enkele aanhalingstekens.
Als u een ander teken opgeeft dan het werkelijke tekenreeksscheidingsteken in het bestand, ConvertFrom-Csv
kunnen de objecten niet worden gemaakt op basis van de CSV-tekenreeksen en worden de CSV-tekenreeksen geretourneerd.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Header
Hiermee geeft u een alternatieve kolomkoprij voor de geïmporteerde tekenreeks. 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 parameter Header gebruikt, laat u de kolomkoptekenreeks weg uit de CSV-tekenreeksen. Anders maakt deze cmdlet een extra object van de items in de veldnamenrij.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
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 waarmee de CSV-tekenreeksen worden ophaalt. U kunt de CSV-tekenreeksen ook doorsluizen naar ConvertFrom-Csv
.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseCulture
Hiermee gebruikt u het lijstscheidingsteken voor de huidige cultuur als het itemscheidingsteken. Als u het lijstscheidingsteken voor een cultuur wilt zoeken, gebruikt u de volgende opdracht: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt CSV-tekenreeksen doorsluizen naar deze cmdlet.
Uitvoerwaarden
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 PowerShell-opmaakvermeldingen waarmee de niet-CSV-versies van het objecttype worden opgemaakt.
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.