Udostępnij za pośrednictwem


ConvertFrom-Csv

Konwertuje właściwości obiektu w formacie wartości rozdzielanej znakami (CSV) na wersje CSV oryginalnych obiektów.

Składnia

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

Opis

Polecenie ConvertFrom-Csv cmdlet konwertuje dane wartości rozdzielanej znakami (CSV) na obiekty typu PSObject dla każdego wiersza danych CSV. Nowe obiekty są zapisywane w potoku w kolejności odczytu z danych CSV. Wartości w wierszu nagłówka kolumny csv stają się nazwami właściwości dodanych do każdego nowego obiektu PSObject.

Tworzone obiekty ConvertFrom-Csvobiektem typu PSObject dla każdego wiersza w pliku CSV. Wartości właściwości obiektów CSV to wersje ciągów wartości właściwości oryginalnych obiektów. Wersje CSV obiektów nie mają żadnych metod.

Polecenia cmdlet i Import-Csv umożliwiają również Export-Csv konwertowanie obiektów na ciągi CSV w pliku i z powrotem. Te polecenia cmdlet są takie same jak ConvertTo-Csv polecenia cmdlet i ConvertFrom-Csv , z tą różnicą, że zapisują ciągi CSV w pliku.

Typ obiektu PSObject zachowuje kolejność właściwości w kolejności nagłówka kolumny. Oznacza to, że po przekonwertowaniu obiektów z powrotem na format CSV uzyskasz taką samą kolejność kolumn.

Przykłady

Przykład 1. Konwertowanie procesów na komputerze lokalnym na format CSV

W tym przykładzie pokazano, jak przekonwertować procesy na komputerze lokalnym na format CSV, a następnie przywrócić je do formularza obiektu.

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

Polecenie Get-Process cmdlet wysyła procesy w dół potoku do .ConvertTo-Csv Polecenie ConvertTo-Csv cmdlet konwertuje obiekty procesu na serię ciągów CSV. Polecenie ConvertFrom-Csv cmdlet konwertuje ciągi CSV na wersje CSV oryginalnych obiektów procesu. Ciągi CSV są zapisywane w zmiennej $P .

Przykład 2. Konwertowanie obiektu danych na format CSV, a następnie na format obiektu CSV

W tym przykładzie pokazano, jak przekonwertować obiekt danych na format CSV, a następnie do formatu obiektu CSV.

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

Pierwsze polecenie używa Get-Date polecenia , aby wysłać bieżącą datę i godzinę w dół potoku do ConvertTo-Csv. Polecenie ConvertTo-Csv cmdlet konwertuje obiekt daty na serię ciągów CSV. Parametr ogranicznika służy do określania ogranicznika średnika. Ciągi są zapisywane w zmiennej $Date .

Przykład 3. Użyj parametru nagłówka, aby zmienić nazwy właściwości

W tym przykładzie pokazano, jak za pomocą parametru ConvertFrom-Csv Header zmienić nazwy właściwości w wynikowym importowanym obiekcie.

$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]

Polecenie Start-Job cmdlet uruchamia zadanie w tle z uruchomionym poleceniem Get-Process. Obiekt zadania jest wysyłany w dół potoku do ConvertTo-Csv i konwertowany na ciąg CSV. Parametr NoTypeInformation usuwa nagłówek informacji o typie z danych wyjściowych CSV i jest opcjonalny w programie PowerShell w wersji 6 i nowszych. Zmienna $Header zawiera nagłówek niestandardowy, który zastępuje następujące wartości domyślne: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime i PSJobTypeName. Zmienna $J zawiera ciąg CSV i służy do usuwania nagłówka domyślnego. Polecenie ConvertFrom-Csv cmdlet konwertuje ciąg CSV na obiekt PSCustomObject i używa parametru Header do zastosowania zmiennej $Header .

Przykład 4. Konwertowanie ciągów CSV obiektów usługi

W tym przykładzie ConvertFrom-Csv pokazano, jak używać polecenia cmdlet z parametrem UseCulture .

(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture

Polecenie Get-Culture cmdlet używa zagnieżdżonych właściwości TextInfo i ListSeparator , aby uzyskać domyślny separator listy bieżącej kultury. Polecenie Get-Service cmdlet wysyła obiekty usługi w dół potoku do ConvertTo-Csv. Obiekt ConvertTo-Csv konwertuje obiekty usługi na serię ciągów CSV. Ciągi CSV są przechowywane w zmiennej $Services . Polecenie ConvertFrom-Csv cmdlet używa parametru InputObject i konwertuje ciągi CSV ze zmiennej $Services . Parametr UseCulture używa domyślnego separatora listy bieżącej kultury.

Gdy jest używany parametr UseCulture, upewnij się, że domyślny separator listy bieżącej kultury jest zgodny z ogranicznikiem używanym w ciągach CSV. ConvertFrom-Csv W przeciwnym razie nie można wygenerować obiektów z ciągów CSV.

Parametry

-Delimiter

Określa ogranicznik oddzielający wartości właściwości w ciągach CSV. Wartość domyślna to przecinek (,). Wprowadź znak, taki jak dwukropek (:). Aby określić średnik (;) ujęć go w pojedynczy cudzysłów.

Jeśli określisz znak inny niż rzeczywisty ogranicznik ciągu w pliku, ConvertFrom-Csv nie można utworzyć obiektów z ciągów CSV i zwracać ciągi CSV.

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

-Header

Określa alternatywny wiersz nagłówka kolumny dla zaimportowanego ciągu. Nagłówek kolumny określa nazwy właściwości obiektów utworzonych przez ConvertFrom-Csvelement .

Wprowadź nagłówki kolumn jako listę rozdzielaną znakami. Nie ujęć ciągu nagłówka w cudzysłów. Ujęć każdy nagłówek kolumny w pojedynczy cudzysłów.

Jeśli wprowadzisz mniej nagłówków kolumn niż istnieją kolumny danych, pozostałe kolumny danych zostaną odrzucone. Jeśli wprowadzisz więcej nagłówków kolumn niż istnieją kolumny danych, dodatkowe nagłówki kolumn zostaną utworzone z pustymi kolumnami danych.

W przypadku korzystania z parametru Header pomiń ciąg nagłówka kolumny z ciągów CSV. W przeciwnym razie to polecenie cmdlet tworzy dodatkowy obiekt z elementów w wierszu nagłówka.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Określa ciągi CSV, które mają być konwertowane na obiekty. Wprowadź zmienną zawierającą ciągi CSV lub wpisz polecenie lub wyrażenie, które pobiera ciągi CSV. Możesz również przesłać potoki ciągów CSV do ConvertFrom-Csv.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-UseCulture

Używa separatora listy dla bieżącej kultury jako ogranicznika elementu. Aby znaleźć separator listy dla kultury, użyj następującego polecenia: (Get-Culture).TextInfo.ListSeparator.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

String

Możesz przekazać ciągi CSV do tego polecenia cmdlet.

Dane wyjściowe

PSObject

To polecenie cmdlet zwraca obiekty opisane przez właściwości w ciągach CSV.

Uwagi

W formacie CSV każdy obiekt jest reprezentowany przez rozdzielaną znakami listę wartości właściwości obiektu. Wartości właściwości są konwertowane na ciągi przy użyciu ToString() metody obiektu. Nie ma możliwości wyeksportowania metod obiektu.