ConvertFrom-Csv
Převede vlastnosti objektu ve formátu CSV (character-separated value) na verze CSV původních objektů.
Syntax
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
ConvertFrom-Csv
-UseCulture
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
Description
Rutina ConvertFrom-Csv
převede data hodnot oddělených znakem (CSV) na objekty typu PSObject pro každý řádek dat CSV. Nové objekty se zapisují do kanálu v pořadí, v jakém se čtou z dat sdíleného svazku clusteru. Hodnoty v řádku záhlaví sloupce sdíleného svazku clusteru se stanou názvy vlastností přidaných do každého nového objektu PSObject.
Objekty, které ConvertFrom-Csv
vytvoří, jsou objekt typu PSObject pro každý řádek v souboru CSV. Hodnoty vlastností objektů CSV jsou řetězcové verze hodnot vlastností původních objektů. Verze CSV objektů nemají žádné metody.
Objekty a rutiny můžete také použít k převodu Export-Csv
Import-Csv
objektů na řetězce CSV v souboru a zpět. Tyto rutiny jsou stejné jako ConvertTo-Csv
rutiny a ConvertFrom-Csv
s tím rozdílem, že ukládají řetězce CSV do souboru.
Typ PSObject udržuje pořadí vlastností v pořadí záhlaví sloupce. To znamená, že při převodu objektů zpět do formátu CSV získáte stejné pořadí sloupců.
Příklady
Příklad 1: Převod procesů na místním počítači na formát CSV
Tento příklad ukazuje, jak převést procesy v místním počítači do formátu CSV a pak je obnovit do formuláře objektu.
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
Rutina Get-Process
odešle procesy do ConvertTo-Csv
kanálu . Rutina ConvertTo-Csv
převede objekty procesu na řadu řetězců CSV. Rutina ConvertFrom-Csv
převede řetězce CSV na verze CSV původních objektů procesu.
Řetězce CSV se ukládají do $P
proměnné.
Příklad 2: Převod datového objektu do formátu CSV a potom na formát objektu CSV
Tento příklad ukazuje, jak převést datový objekt do formátu CSV a pak na formát objektu CSV.
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
První příkaz používá Get-Date
k odeslání aktuálního data a času v kanálu do ConvertTo-Csv
. Rutina ConvertTo-Csv
převede objekt data na řadu řetězců CSV. Parametr Oddělovač se používá k určení oddělovače středníku. Řetězce jsou uloženy v $Date
proměnné.
Příklad 3: Změna názvů vlastností pomocí parametru hlavičky
Tento příklad ukazuje, jak pomocí parametru ConvertFrom-Csv
Header změnit názvy vlastností ve výsledném importovaném objektu.
$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]
Rutina Start-Job
spustí úlohu na pozadí, která běží Get-Process
. Objekt úlohy se odešle do kanálu ConvertTo-Csv
a převede se na řetězec CSV. Parametr NoTypeInformation odebere hlavičku informací o typu z výstupu CSV a je volitelná v PowerShellu v6 a vyšší. Proměnná $Header
obsahuje vlastní hlavičku, která nahrazuje následující výchozí hodnoty: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime a PSJobTypeName. Proměnná $J
obsahuje řetězec CSV a slouží k odebrání výchozí hlavičky. Rutina ConvertFrom-Csv
převede řetězec CSV na PSCustomObject a použije parametr Header k použití $Header
proměnné.
Příklad 4: Převod řetězců CSV objektů služby
Tento příklad ukazuje, jak použít rutinu ConvertFrom-Csv
s parametrem UseCulture .
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
Rutina Get-Culture
používá vnořené vlastnosti TextInfo a ListSeparator k získání výchozího oddělovače seznamu aktuální jazykové verze. Rutina Get-Service
odesílá objekty služby do kanálu .ConvertTo-Csv
Převede ConvertTo-Csv
objekty služby na řadu řetězců CSV. Řetězce CSV jsou uloženy v $Services
proměnné. Rutina ConvertFrom-Csv
používá parametr InputObject a převede řetězce CSV z $Services
proměnné. Parametr UseCulture používá výchozí oddělovač seznamu aktuální jazykové verze.
Při použití parametru UseCulture se ujistěte, že výchozí oddělovač seznamu aktuální jazykové verze odpovídá oddělovači použitému v řetězcích CSV. ConvertFrom-Csv
V opačném případě nelze vygenerovat objekty z řetězců CSV.
Parametry
-Delimiter
Určuje oddělovač, který odděluje hodnoty vlastností v řetězcích CSV. Výchozí hodnota je čárka (,
). Zadejte znak, například dvojtečku (:
). Pokud chcete zadat středník (;
), uzavřete ho do jednoduchých uvozovek.
Pokud v souboru zadáte jiný znak než skutečný oddělovač řetězců, ConvertFrom-Csv
nemůžete vytvořit objekty z řetězců CSV a vrátit řetězce CSV.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Header
Určuje řádek záhlaví alternativního sloupce pro importovaný řetězec. Záhlaví sloupce určuje názvy vlastností objektů vytvořených ConvertFrom-Csv
.
Zadejte záhlaví sloupců jako seznam oddělený znakem. nezavřete řetězec záhlaví do uvozovek. Uzavřete záhlaví každého sloupce do jednoduchých uvozovek.
Pokud zadáte méně záhlaví sloupců, než jsou sloupce dat, zbývající datové sloupce se zahodí. Pokud zadáte více záhlaví sloupců, než jsou datové sloupce, vytvoří se další záhlaví sloupců s prázdnými datovými sloupci.
Při použití parametru Header vynecháte řetězec záhlaví sloupce z řetězců CSV. V opačném případě tato rutina vytvoří další objekt z položek v řádku záhlaví.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Určuje řetězce CSV, které se mají převést na objekty. Zadejte proměnnou obsahující řetězce CSV nebo zadejte příkaz nebo výraz, který získá řetězce CSV. Řetězce CSV můžete také převést na ConvertFrom-Csv
.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseCulture
Použije oddělovač seznamu pro aktuální jazykovou verzi jako oddělovač položek. K vyhledání oddělovače seznamu pro jazykovou verzi použijte následující příkaz: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Vstupy
Do této rutiny můžete vést řetězce CSV.
Výstupy
Tato rutina vrátí objekty popsané vlastnostmi v řetězcích CSV.
Poznámky
Ve formátu CSV je každý objekt reprezentován seznamem vlastností oddělených znakem hodnot objektu. Hodnoty vlastností jsou převedeny na řetězce pomocí ToString()
metody objektu. Neexistuje způsob, jak exportovat metody objektu.