Sdílet prostřednictvím


ConvertFrom-Csv

Převede vlastnosti objektu ve formátu CSV (character-separated value) na verze CSV původních objektů.

Syntax

Delimiter (Výchozí)

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

UseCulture

ConvertFrom-Csv
    [-InputObject] <PSObject[]>
    -UseCulture
    [-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 PSObject typ objektu 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.

Pomocí rutin Export-Csv a Import-Csv můžete také převést objekty na řetězce CSV v souboru a zpět. Tyto rutiny jsou stejné jako ConvertTo-Csv a ConvertFrom-Csv rutiny 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 z kanálu do ConvertTo-Csv. 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 proměnné $P.

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č slouží k určení oddělovače středníku. Řetězce jsou uloženy v proměnné $Date.

Příklad 3: Změna názvů vlastností pomocí parametru hlavičky

Tento příklad ukazuje, jak pomocí parametru HeaderConvertFrom-Csv 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]

Cmdlet Start-Job spustí úlohu na pozadí, která běží Get-Process. Objekt úlohy se odešle do kanálu, aby se ConvertTo-Csv a převedl na řetězec CSV. Parametr NoTypeInformation odebere hlavičku informací o typu z výstupu CSV a je volitelná v PowerShellu verze 6 a vyšší. Proměnná $Header obsahuje vlastní hlavičku, která nahrazuje následující výchozí hodnoty: HasMoreData, JobStateInfo, PSBeginTime, PSEndTimea 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í proměnné $Header.

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

Cmdlet Get-Culture používá vnořené vlastnosti TextInfo a ListSeparator k získání výchozího oddělovače seznamu podle aktuálního nastavení kultury. Rutina Get-Service odesílá objekty služby do kanálu do ConvertTo-Csv. ConvertTo-Csv převede objekty služby na řadu řetězců CSV. Řetězce CSV jsou uloženy v proměnné $Services. Rutina ConvertFrom-Csv používá parametr InputObject a převede řetězce CSV z proměnné $Services. Parametr UseCulture používá výchozí oddělovač seznamu aktuální kultury.

Pokud se použije parametr UseCulture, ujistěte se, že výchozí oddělovač seznamu aktuální jazykové verze odpovídá oddělovači použitému v řetězcích CSV. V opačném případě ConvertFrom-Csv nemůže generovat objekty z řetězců CSV.

Příklad 5: Převod dat CSV v rozšířeném formátu protokolu W3C

Tento příklad ukazuje, jak převést data CSV v rozšířeném formátu protokolu W3C na objekty.

$logData = @"
#Version: 1.0
#Date: 12-Jan-1996 00:00:00
#Fields: time,cs-method,cs-uri
00:34:23,GET,/foo/bar.html
12:21:16,GET,/foo/bar.html
12:45:52,GET,/foo/bar.html
12:57:34,GET,/foo/bar.html
"@
ConvertFrom-Csv $logData
time     cs-method cs-uri
----     --------- ------
00:34:23 GET       /foo/bar.html
12:21:16 GET       /foo/bar.html
12:45:52 GET       /foo/bar.html
12:57:34 GET       /foo/bar.html

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ůže vytvořit objekty z řetězců CSV a vrátit řetězce CSV.

Vlastnosti parametru

Typ:Char
Default value:comma (,)
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

Delimiter
Position:1
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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í.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:

PSObject[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:0
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-UseCulture

Použije oddělovač seznamu pro aktuální kulturu jako oddělovač položek. K vyhledání oddělovače seznamu pro kulturu použijte následující příkaz: (Get-Culture).TextInfo.ListSeparator.

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

UseCulture
Position:Named
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

String

Do této rutiny můžete vést řetězce CSV.

Výstupy

PSObject

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.

ConvertFrom-Csv podporuje také formát rozšířeného protokolu W3C. Řádky začínající znakem hash (#) se považují za komentáře a ignorují se, pokud komentář nezačíná #Fields: a neobsahuje seznam názvů sloupců oddělených čárkami. V takovém případě rutina používá tyto názvy sloupců. Toto je standardní formát pro službu Windows IIS a další logy webových serverů. Další informace naleznete v tématu Rozšířený formát souboru protokolu.