ConvertFrom-Csv

Převede vlastnosti objektu ve formátu HODNOT oddělených znaky (CSV) 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 znaky (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é se vytvoří, ConvertFrom-Csv jsou objektem 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.

K převodu Export-Csv objektů na řetězce CSV v souboru a zpět můžete použít také rutiny a Import-Csv . Tyto rutiny jsou stejné jako ConvertTo-Csv rutiny a ConvertFrom-Csv s tím rozdílem, že ukládají řetězce sdíleného svazku clusteru do souboru.

Typ PSObject udržuje pořadí vlastností v pořadí záhlaví sloupců. 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ů v místním počítači do formátu 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 objektového formuláře.

$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv

Rutina Get-Process odešle procesy v 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 $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 do formátu objektu CSV.

$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'

První příkaz použije Get-Date k odeslání aktuálního data a času v kanálu do ConvertTo-Csv. Rutina ConvertTo-Csv převede objekt date na řadu řetězců CSV. Parametr Delimiter slouží k určení oddělovače středníkem. Řetězce se uloží do $Date proměnné .

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

Tento příklad ukazuje, jak pomocí parametru ConvertFrom-CsvHeader 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á spustí Get-Process. Objekt úlohy se odešle do kanálu a ConvertTo-Csv převede se na řetězec CSV. Parametr NoTypeInformation odebere hlavičku informací o typu z výstupu sdíleného svazku clusteru a v PowerShellu verze 6 a vyšší je volitelný. 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 v kanálu do ConvertTo-Csv. Objekt ConvertTo-Csv převede objekty služby na řadu řetězců CSV. Řetězce CSV se ukládají do $Services proměnné . Rutina ConvertFrom-Csv použije 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 sdíleného svazku clusteru. V opačném ConvertFrom-Csv případě nelze generovat 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 nelze vytvořit objekty z řetězců CSV a vrátit řetězce CSV.

Type:Char
Position:1
Default value:comma (,)
Accept pipeline input:False
Accept wildcard characters:False

-Header

Určuje alternativní řádek záhlaví sloupce pro importovaný řetězec. Záhlaví sloupce určuje názvy vlastností objektů vytvořených nástrojem ConvertFrom-Csv.

Zadejte záhlaví sloupců jako seznam oddělených znaky. neuzavívejte řetězec záhlaví do uvozovek. Každé záhlaví sloupce uzavřete do jednoduchých uvozovek.

Pokud zadáte méně záhlaví sloupců, než kolik je datových sloupců, zbývající sloupce dat se zahodí. Pokud zadáte více záhlaví sloupců, než kolik je sloupců dat, vytvoří se další záhlaví sloupců s prázdnými sloupci dat.

Při použití parametru Header vyněžte řetězec záhlaví sloupce z řetězců CSV. Jinak tato rutina vytvoří další objekt z položek v řádku záhlaví.

Type:String[]
Position:Named
Default value:None
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, která obsahuje ř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 do ConvertFrom-Csv.

Type:PSObject[]
Position:0
Default value:None
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
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

String

Do této rutiny můžete připojit řetězce CSV.

Výstupy

PSObject

Tato rutina vrátí objekty popsané vlastnostmi v řetězcích sdíleného svazku clusteru.

Poznámky

Ve formátu CSV je každý objekt reprezentován seznamem hodnot vlastností objektu odděleným znaky. Hodnoty vlastností se převedou na řetězce pomocí ToString() metody objektu . Neexistuje způsob, jak exportovat metody objektu.