ConvertFrom-Csv
Konwertuje właściwości obiektów w formacie wartości rozdzielanej przecinkami (CSV) na wersje CSV oryginalnych obiektów.
Składnia
ConvertFrom-Csv
[-InputObject] <psobject[]>
[[-Delimiter] <char>]
[-Header <string[]>]
[<CommonParameters>]
ConvertFrom-Csv
[-InputObject] <psobject[]>
-UseCulture
[-Header <string[]>]
[<CommonParameters>]
Opis
Polecenie ConvertFrom-Csv
cmdlet tworzy obiekty na podstawie ciągów o zmiennej ConvertTo-Csv
długości csv generowanych przez polecenie cmdlet.
Możesz użyć parametrów tego polecenia cmdlet, aby określić wiersz nagłówka kolumny, który określa nazwy właściwości wynikowych obiektów, aby określić ogranicznik elementu lub kierować to polecenie cmdlet do używania separatora listy dla bieżącej kultury jako ogranicznika.
Obiekty tworzone ConvertFrom-Csv
są wersjami csv oryginalnych obiektów. Wartości właściwości obiektów CSV są wersjami 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.
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 format obiektu CSV.
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
Pierwsze polecenie używa polecenia Get-Date
, 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 zaimportowanych obiektach.
$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 Core. Zmienna $Header
zawiera niestandardowy nagłówek, 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 domyślnego nagłówka. Polecenie ConvertFrom-Csv
cmdlet konwertuje ciąg CSV na obiekt PSCustomObject i używa parametru Header w celu zastosowania zmiennej $Header
.
Przykład 4. Konwertowanie ciągów CSV obiektów usługi
W tym przykładzie pokazano, jak używać ConvertFrom-Csv
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
usługi konwertuje 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 zwróci 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-Csv
program .
Wprowadź nagłówki kolumn jako listę rozdzielaną przecinkami. Nie należy 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 użycia parametru Nagłówek 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
Możesz potokować ciągi CSV do tego polecenia cmdlet.
Dane wyjściowe
To polecenie cmdlet zwraca obiekty opisane przez właściwości w ciągach CSV.
Uwagi
Ponieważ importowane obiekty są wersjami CSV typu obiektu, nie są rozpoznawane i formatowane przez wpisy formatujące typ programu PowerShell, które formatują wersje obiektów innych niż CSV.
W formacie CSV każdy obiekt jest reprezentowany przez rozdzielaną przecinkami listę wartości właściwości obiektu. Wartości właściwości są konwertowane na ciągi (przy użyciu metody ToString() obiektu, więc są one reprezentowane przez nazwę wartości właściwości. To polecenie cmdlet nie eksportuje metod obiektu.