Udostępnij za pomocą


Export-Csv

Konwertuje obiekty na serię ciągów wartości rozdzielanych znakami (CSV) i zapisuje ciągi w pliku.

Składnia

Delimiter (Domyślna)

Export-Csv
    [[-Path] <String>]
    [[-Delimiter] <Char>]
    -InputObject <PSObject>
    [-LiteralPath <String>]
    [-Force]
    [-NoClobber]
    [-Encoding <Encoding>]
    [-Append]
    [-IncludeTypeInformation]
    [-NoTypeInformation]
    [-QuoteFields <String[]>]
    [-UseQuotes <QuoteKind>]
    [-NoHeader]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

UseCulture

Export-Csv
    [[-Path] <String>]
    -InputObject <PSObject>
    [-LiteralPath <String>]
    [-Force]
    [-NoClobber]
    [-Encoding <Encoding>]
    [-Append]
    [-UseCulture]
    [-IncludeTypeInformation]
    [-NoTypeInformation]
    [-QuoteFields <String[]>]
    [-UseQuotes <QuoteKind>]
    [-NoHeader]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Opis

Polecenie Export-Csv cmdlet tworzy plik CSV z przesyłanymi obiektami. Każdy obiekt jest wierszem zawierającym rozdzielaną znakami listę wartości właściwości obiektu. Za pomocą Export-Csv polecenia cmdlet można tworzyć arkusze kalkulacyjne i udostępniać dane programom, które akceptują pliki CSV jako dane wejściowe.

Nie formatuj obiektów przed wysłaniem Export-Csv ich do polecenia cmdlet. W przypadku Export-Csv odebrania sformatowanych obiektów plik CSV zawiera właściwości formatu, a nie właściwości obiektu. Aby wyeksportować tylko wybrane właściwości obiektu, należy użyć Select-Object polecenia cmdlet.

Przykłady

Przykład 1: Eksportowanie właściwości procesu do pliku CSV

W tym przykładzie wybierane są obiekty procesu o określonych właściwościach, eksportowane obiekty do pliku CSV.

Get-Process -Name WmiPrvSE |
    Select-Object -Property BasePriority, Id, SessionId, WorkingSet |
    Export-Csv -Path .\WmiData.csv -NoTypeInformation
Import-Csv -Path .\WmiData.csv
BasePriority Id    SessionId WorkingSet
------------ --    --------- ----------
8            976   0         20267008
8            2292  0         36786176
8            3816  0         30351360
8            8604  0         15011840
8            10008 0         8830976
8            11764 0         14237696
8            54632 0         9502720

Polecenie Get-Process cmdlet pobiera obiekty Process . Parametr Name filtruje dane wyjściowe tak, aby zawierały tylko obiekty procesu WmiPrvSE. Obiekty procesu są wysyłane w dół potoku do polecenia cmdlet Select-Object. Select-Object używa parametru Property w celu wybrania podzbioru właściwości obiektu procesu. Obiekty procesu są wysyłane w dół potoku do polecenia cmdlet Export-Csv. Export-Csv konwertuje obiekty procesu na serię ciągów CSV. Parametr Path określa, że WmiData.csv plik jest zapisywany w bieżącym katalogu. Parametr NoTypeInformation usuwa nagłówek informacji #TYPE z danych wyjściowych CSV i nie jest wymagany w programie PowerShell 6. Polecenie Import-Csv cmdlet używa parametru Path do wyświetlenia pliku znajdującego się w bieżącym katalogu.

Przykład 2: Eksportowanie procesów do pliku rozdzielanego przecinkami

W tym przykładzie pobierane są obiekty Process i eksportowane do pliku CSV.

Get-Process | Export-Csv -Path .\Processes.csv -NoTypeInformation
Get-Content -Path .\Processes.csv
"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...

Polecenie Get-Process cmdlet pobiera obiekty procesu . Obiekty procesu są wysyłane w dół potoku do polecenia cmdlet Export-Csv. Export-Csv konwertuje obiekty procesu na serię ciągów CSV. Parametr Path określa, że Processes.csv plik jest zapisywany w bieżącym katalogu. Parametr NoTypeInformation usuwa nagłówek informacji #TYPE z danych wyjściowych CSV i nie jest wymagany w programie PowerShell 6. Polecenie Get-Content cmdlet używa parametru Path do wyświetlenia pliku znajdującego się w bieżącym katalogu.

Przykład 3: Eksportowanie procesów do pliku rozdzielanego średnikami

W tym przykładzie pobierane są obiekty Process i eksportowane do pliku z ogranicznikiem średnika.

Get-Process | Export-Csv -Path .\Processes.csv -Delimiter ';' -NoTypeInformation
Get-Content -Path .\Processes.csv
"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...

Polecenie Get-Process cmdlet pobiera obiekty procesu . Obiekty procesu są wysyłane w dół potoku do polecenia cmdlet Export-Csv. Export-Csv konwertuje obiekty procesu na serię ciągów CSV. Parametr Path określa, że Processes.csv plik jest zapisywany w bieżącym katalogu. Ogranicznik parametr określa średnik, aby oddzielić wartości ciągu. Parametr NoTypeInformation usuwa nagłówek informacji #TYPE z danych wyjściowych CSV i nie jest wymagany w programie PowerShell 6. Polecenie Get-Content cmdlet używa parametru Path do wyświetlenia pliku znajdującego się w bieżącym katalogu.

Przykład 4: Eksportowanie procesów przy użyciu separatora listy bieżącej kultury

W tym przykładzie pobierane są obiekty Process i eksportowane do pliku. Ogranicznik jest separatorem listy bieżącej kultury.

(Get-Culture).TextInfo.ListSeparator
Get-Process | Export-Csv -Path .\Processes.csv -UseCulture -NoTypeInformation
Get-Content -Path .\Processes.csv
"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...

Polecenie cmdlet Get-Culture używa zagnieżdżonych właściwości TextInfo i ListSeparator i wyświetla domyślny separator listy bieżącej kultury. Polecenie Get-Process cmdlet pobiera obiekty procesu . Obiekty procesu są wysyłane w dół potoku do polecenia cmdlet Export-Csv. Export-Csv konwertuje obiekty procesu na serię ciągów CSV. Parametr Path określa, że Processes.csv plik jest zapisywany w bieżącym katalogu. Parametr UseCulture używa domyślnego separatora listy bieżącej kultury jako ogranicznika. Parametr NoTypeInformation usuwa nagłówek informacji #TYPE z danych wyjściowych CSV i nie jest wymagany w programie PowerShell 6. Polecenie Get-Content cmdlet używa parametru Path do wyświetlenia pliku znajdującego się w bieżącym katalogu.

Przykład 5: Eksportowanie procesów z informacjami o typie

W tym przykładzie wyjaśniono, jak dołączyć informacje nagłówka #TYPE do pliku CSV. Nagłówek #TYPE jest domyślny w wersjach wcześniejszych niż PowerShell 6.0.

Get-Process | Export-Csv -Path .\Processes.csv -IncludeTypeInformation
Get-Content -Path .\Processes.csv
#TYPE System.Diagnostics.Process
"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","507","2203595001856","35139584","20934656","29504", ...

Polecenie Get-Process cmdlet pobiera obiekty procesu . Obiekty procesu są wysyłane w dół potoku do polecenia cmdlet Export-Csv. Export-Csv konwertuje obiekty procesu na serię ciągów CSV. Parametr Path określa, że Processes.csv plik jest zapisywany w bieżącym katalogu. Element IncludeTypeInformation zawiera nagłówek informacji #TYPE w danych wyjściowych CSV. Polecenie Get-Content cmdlet używa parametru Path do wyświetlenia pliku znajdującego się w bieżącym katalogu.

Przykład 6: Eksportowanie i dołączanie obiektów do pliku CSV

W tym przykładzie opisano sposób eksportowania obiektów do pliku CSV i używania parametru Append w celu dodania obiektów do istniejącego pliku.

$AppService = (Get-Service -DisplayName *Application* |
    Select-Object -Property DisplayName, Status)
$AppService | Export-Csv -Path .\Services.Csv -NoTypeInformation
Get-Content -Path .\Services.Csv

$WinService = (Get-Service -DisplayName *Windows* |
    Select-Object -Property DisplayName, Status)
$WinService | Export-Csv -Path .\Services.csv -NoTypeInformation -Append
Get-Content -Path .\Services.Csv
"DisplayName","Status"
"Application Layer Gateway Service","Stopped"
"Application Identity","Running"
"Windows Audio Endpoint Builder","Running"
"Windows Audio","Running"
"Windows Event Log","Running"

Polecenie Get-Service cmdlet pobiera obiekty usługi. Parametr DisplayName zwraca usługi, które zawierają słowo Application. Obiekty usługi są wysyłane w dół potoku do polecenia cmdlet Select-Object. Select-Object używa parametru Property w celu określenia właściwości DisplayName i Status . Zmienna $AppService przechowuje obiekty.

Obiekty $AppService są wysyłane w dół potoku do polecenia cmdlet Export-Csv. Export-Csv konwertuje obiekty usługi na serię ciągów CSV. Parametr Path określa, że Services.csv plik jest zapisywany w bieżącym katalogu. Parametr NoTypeInformation usuwa nagłówek informacji #TYPE z danych wyjściowych CSV i nie jest wymagany w programie PowerShell 6. Polecenie Get-Content cmdlet używa parametru Path do wyświetlenia pliku znajdującego się w bieżącym katalogu.

Polecenia Get-Service cmdlet i Select-Object są powtarzane dla usług, które zawierają słowo Windows. Zmienna $WinService przechowuje obiekty usługi. Polecenie Export-Csv cmdlet używa parametru Append , aby określić, że $WinService obiekty są dodawane do istniejącego Services.csv pliku. Polecenie Get-Content cmdlet jest powtarzane w celu wyświetlenia zaktualizowanego pliku zawierającego dołączone dane.

Przykład 7: Formatowanie polecenia cmdlet w potoku powoduje utworzenie nieoczekiwanych wyników

W tym przykładzie pokazano, dlaczego ważne jest, aby nie używać polecenia cmdlet formatu w potoku. Po odebraniu nieoczekiwanych danych wyjściowych rozwiąż problemy ze składnią potoku.

Get-Date | Select-Object -Property DateTime, Day, DayOfWeek, DayOfYear |
    Export-Csv -Path .\DateTime.csv -NoTypeInformation
Get-Content -Path .\DateTime.csv
"DateTime","Day","DayOfWeek","DayOfYear"
"Wednesday, January 2, 2019 14:59:34","2","Wednesday","2"
Get-Date | Format-Table -Property DateTime, Day, DayOfWeek, DayOfYear |
    Export-Csv -Path .\FTDateTime.csv -NoTypeInformation
Get-Content -Path .\FTDateTime.csv
"ClassId2e4f51ef21dd47e99d3c952918aff9cd","pageHeaderEntry","pageFooterEntry","autosizeInfo", ...
"033ecb2bc07a4d43b5ef94ed5a35d280",,,,"Microsoft.PowerShell.Commands.Internal.Format. ...
"9e210fe47d09416682b841769c78b8a3",,,,,
"27c87ef9bbda4f709f6b4002fa4af63c",,,,,
"4ec4f0187cb04f4cb6973460dfe252df",,,,,
"cf522b78d86c486691226b40aa69e95c",,,,,

Polecenie Get-Date cmdlet pobiera obiekt DateTime . Obiekt jest wysyłany w dół potoku do polecenia cmdlet Select-Object. Select-Object używa parametru Właściwość w celu wybrania podzbioru właściwości obiektu. Obiekt jest wysyłany w dół potoku do polecenia cmdlet Export-Csv. Export-Csv konwertuje obiekt na format CSV. Parametr Path określa, że DateTime.csv plik jest zapisywany w bieżącym katalogu. Parametr NoTypeInformation usuwa nagłówek informacji #TYPE z danych wyjściowych CSV i nie jest wymagany w programie PowerShell 6. Polecenie Get-Content cmdlet używa parametru Path do wyświetlenia pliku CSV znajdującego się w bieżącym katalogu.

Format-Table Gdy polecenie cmdlet jest używane w potoku do wybierania właściwości, odbierane są nieoczekiwane wyniki. Format-Table wysyła obiekty formatu tabeli w dół potoku do polecenia cmdlet, Export-Csv a nie do obiektu DateTime . Export-Csv Konwertuje obiekty formatu tabeli na serię ciągów CSV. Polecenie Get-Content cmdlet wyświetla plik CSV, który zawiera obiekty formatu tabeli.

Przykład 8: Zastępowanie plików tylko do odczytu przy użyciu parametru Force

W tym przykładzie tworzony jest pusty plik tylko do odczytu i używany jest parametr Force w celu zaktualizowania pliku.

New-Item -Path .\ReadOnly.csv -ItemType File
Set-ItemProperty -Path .\ReadOnly.csv -Name IsReadOnly -Value $true
Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation
Export-Csv : Access to the path 'C:\ReadOnly.csv' is denied.
At line:1 char:15
+ Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation
+               ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (:) [Export-Csv], UnauthorizedAccessException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ExportCsvCommand
Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation -Force
Get-Content -Path .\ReadOnly.csv
"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...

Polecenie New-Item cmdlet używa parametrów Path i ItemType do utworzenia ReadOnly.csv pliku w bieżącym katalogu. Polecenie Set-ItemProperty cmdlet używa parametrów Name i Value , aby zmienić właściwość pliku IsReadOnly na true. Polecenie Get-Process cmdlet pobiera obiekty procesu . Obiekty procesu są wysyłane w dół potoku do polecenia cmdlet Export-Csv. Export-Csv konwertuje obiekty procesu na serię ciągów CSV. Parametr Path określa, że ReadOnly.csv plik jest zapisywany w bieżącym katalogu. Parametr NoTypeInformation usuwa nagłówek informacji #TYPE z danych wyjściowych CSV i nie jest wymagany w programie PowerShell 6. Dane wyjściowe pokazują, że plik nie jest zapisywany, ponieważ odmówiono dostępu.

Parametr Force jest dodawany do polecenia cmdlet, Export-Csv aby wymusić zapis eksportu do pliku. Polecenie Get-Content cmdlet używa parametru Path do wyświetlenia pliku znajdującego się w bieżącym katalogu.

Przykład 9: Używanie parametru Force z parametrem Dołącz

W tym przykładzie pokazano, jak używać parametrów Force (Wyś) i Append (Dołącz). Po połączeniu tych parametrów niezgodne właściwości obiektu mogą zostać zapisane w pliku CSV.

$Content = [pscustomobject]@{Name = 'PowerShell'; Version = '7.0'}
$Content | Export-Csv -Path .\ParmFile.csv -NoTypeInformation
$AdditionalContent = [pscustomobject]@{Name = 'Windows PowerShell'; Edition = 'Desktop'}
$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append
Export-Csv : Cannot append CSV content to the following file: ParmFile.csv.
The appended object does not have a property that corresponds to the following column:
Version. To continue with mismatched properties, add the -Force parameter, and then retry
 the command.
At line:1 char:22
+ $AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidData: (Version:String) [Export-Csv], InvalidOperationException
+ FullyQualifiedErrorId : CannotAppendCsvWithMismatchedPropertyNames,Microsoft.PowerShell. ...
$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append -Force
Import-Csv -Path .\ParmFile.csv
Name               Version
----               -------
PowerShell         7.0
Windows PowerShell

Wyrażenie tworzy obiekt PSCustomObject z właściwościami Name i Version . Wartości są przechowywane w zmiennej $Content. Zmienna $Content jest wysyłana w dół potoku do polecenia cmdlet Export-Csv. Export-Csv używa parametru Path i zapisuje ParmFile.csv plik w bieżącym katalogu. Parametr NoTypeInformation usuwa nagłówek informacji #TYPE z danych wyjściowych CSV i nie jest wymagany w programie PowerShell 6.

Inne wyrażenie tworzy obiekt PSCustomObject z właściwościami Name i Edition . Wartości są przechowywane w zmiennej $AdditionalContent. Zmienna $AdditionalContent jest wysyłana w dół potoku do polecenia cmdlet Export-Csv. Parametr Append służy do dodawania danych do pliku. Dołączanie kończy się niepowodzeniem, ponieważ istnieje niezgodność nazwy właściwości między wersjami iwersja.

Parametr Export-CsvForce polecenia cmdlet służy do wymuszania zapisu eksportu do pliku. Właściwość Edition jest odrzucana. Polecenie Import-Csv cmdlet używa parametru Path do wyświetlenia pliku znajdującego się w bieżącym katalogu.

Przykład 10: Eksportowanie do pliku CSV z cudzysłowami wokół dwóch kolumn

Ten przykład konwertuje obiekt DateTime na ciąg CSV.

Get-Date | Export-Csv -QuoteFields "DateTime","Date" -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv
DisplayHint,"DateTime","Date",Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:27:34 AM","8/22/2019 12:00:00 AM",22,Thursday,234,11,Local,569,27,8,34,637020700545699784,11:27:34.5699784,2019

Przykład 11: Eksportowanie do pliku CSV przy użyciu cudzysłowów tylko wtedy, gdy jest to konieczne

Ten przykład konwertuje obiekt DateTime na ciąg CSV.

Get-Date | Export-Csv -UseQuotes AsNeeded -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv
DisplayHint,DateTime,Date,Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:31:00 AM",8/22/2019 12:00:00 AM,22,Thursday,234,11,Local,713,31,8,0,637020702607132640,11:31:00.7132640,2019

Przykład 12. Konwertowanie tabel skrótów na wolumin CSV

W programie PowerShell w wersji 7.2 lub nowszej podczas eksportowania tabel skrótów do pliku CSV klucze pierwszego tabeli skrótu są serializowane i używane jako nagłówki w danych wyjściowych pliku CSV.

$person1 = @{
    Name = 'John Smith'
    Number = 1
}

$person2 = @{
    Name = 'Jane Smith'
    Number = 2
}

$allPeople = $person1, $person2
$allPeople | Export-Csv -Path .\People.csv

Get-Content -Path .\People.csv
"Name","Number"
"John Smith","1"
"Jane Smith","2"

Przykład 13. Konwertowanie tabel skrótów na woluminy CSV z dodatkowymi właściwościami

W programie PowerShell w wersji 7.2 lub nowszej podczas eksportowania tabeli skrótowej z dodanymi dodatkowymi właściwościami Add-Member lub Select-Object dodatkowe właściwości są również dodawane jako nagłówek w pliku CSV.

$allPeople | Add-Member -Name ExtraProp -Value 42 -MemberType NoteProperty
$allPeople | Export-Csv -Path .\People.csv

Get-Content -Path .\People.csv
"Name","Number","ExtraProp"
"John Smith","1","42"
"Jane Smith","2","42"

Każda tabela skrótów ma właściwość o nazwie ExtraProp dodanej przez Add-Member , a następnie wyeksportowaną do pliku CSV. Teraz możesz zobaczyć ExtraProp nagłówek w danych wyjściowych pliku CSV.

Jeśli dodana właściwość ma taką samą nazwę jak klucz z tabeli skrótu, klucz ma pierwszeństwo i tylko klucz jest eksportowany do pliku CSV.

Parametry

-Append

Użyj tego parametru, aby Export-Csv dodać dane wyjściowe CSV na końcu określonego pliku. Bez tego parametru podmienia Export-Csv zawartość pliku bez ostrzeżenia.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Confirm

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:por

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Delimiter

Określa ogranicznik do oddzielania wartości właściwości. Wartość domyślna to przecinek (,). Wprowadź znak, taki jak dwukropek (:). Aby określić średnik (;), należy ująć go w cudzysłów.

Właściwości parametru

Typ:Char
Domyślna wartość:comma (,)
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

Delimiter
Position:1
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Encoding

Określa kodowanie wyeksportowanego pliku CSV. Wartość domyślna to utf8NoBOM.

Dopuszczalne wartości tego parametru są następujące:

  • ascii: używa kodowania zestawu znaków ASCII (7-bitowych).
  • ansi: używa kodowania strony kodowej ANSI dla bieżącej kultury. Ta opcja została dodana
  • bigendianunicode: Koduje w formacie UTF-16 wykorzystując porządek bajtów big-endian.
  • bigendianutf32: Koduje w formacie UTF-32 przy użyciu kolejności bajtów big-endian.
  • oem: używa domyślnego kodowania dla programów MS-DOS i konsoli.
  • unicode: Koduje w formacie UTF-16, używając układu bajtów little-endian.
  • utf7: koduje w formacie UTF-7.
  • utf8: koduje w formacie UTF-8.
  • utf8BOM: koduje w formacie UTF-8 za pomocą znacznika kolejności bajtów (BOM)
  • utf8NoBOM: Koduje w formacie UTF-8, nie używając znacznika kolejności bajtów (BOM)
  • utf32: koduje w formacie UTF-32.

Począwszy od programu PowerShell 6.2, w parametrze Kodowanie można używać również numerycznych identyfikatorów zarejestrowanych stron kodu (na przykład -Encoding 1251) lub nazw tekstowych zarejestrowanych stron kodu (na przykład -Encoding "windows-1251"). Aby uzyskać więcej informacji, zobacz dokumentację platformy .NET dotyczącą Encoding.CodePage.

Począwszy od programu PowerShell 7.4, można użyć wartości parametru kodowania , aby przekazać identyfikator liczbowy dla strony kodowej ANSI bieżącej kultury bez konieczności ręcznego określania go.

Uwaga / Notatka

UTF-7* nie jest już zalecane do użycia. Od wersji PowerShell 7.1 zapisywane jest ostrzeżenie, jeśli określisz utf7 dla parametru kodowania .

Właściwości parametru

Typ:Encoding
Domyślna wartość:UTF8NoBOM
Dopuszczalne wartości:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Force

Ten parametr pozwala Export-Csv na nadpisanie plików z atrybutem Tylko do odczytu .

Po połączeniu parametrów Force i Append obiekty, które zawierają niezgodne właściwości, mogą być zapisywane w pliku CSV. Tylko pasujące właściwości są zapisywane w pliku. Niezgodne właściwości są odrzucane.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-IncludeTypeInformation

Gdy ten parametr jest używany pierwszy wiersz danych wyjściowych CSV zawiera #TYPE po nim w pełni kwalifikowaną nazwę typu obiektu. Na przykład #TYPE System.Diagnostics.Process.

Ten parametr został wprowadzony w programie PowerShell 6.0.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:ITI

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-InputObject

Określa obiekty, które mają być eksportowane jako ciągi CSV. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty. Można również potokować obiekty do Export-Csv.

Właściwości parametru

Typ:PSObject
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-LiteralPath

Określa ścieżkę do pliku wyjściowego CSV. W przeciwieństwie do Path, wartość parametru LiteralPath jest używana dokładnie tak, jak ją wpisano. Żadne znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy użyć pojedynczych cudzysłowów. Pojedyncze cudzysłowy wskazują programowi PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:PSPath, LP

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-NoClobber

Użyj tego parametru, aby Export-Csv nie zastępować istniejącego pliku. Domyślnie, jeśli plik istnieje w określonej ścieżce, Export-Csv zastępuje go bez ostrzeżenia.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:NoOverwrite

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-NoHeader

Gdy ten parametr jest używany, polecenie cmdlet nie zapisuje wiersza nagłówka zawierającego nazwy kolumn do danych wyjściowych.

Ten parametr został dodany w programie PowerShell 7.4.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-NoTypeInformation

Usuwa nagłówek informacji #TYPE z danych wyjściowych. Ten parametr stał się wartością domyślną w programie PowerShell 6.0 i został uwzględniony w celu zapewnienia zgodności z poprzednimi wersjami.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:NTI

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Path

Wymagany parametr określający lokalizację do zapisania pliku wyjściowego CSV.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:0
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-QuoteFields

Określa nazwy kolumn, które powinny być cytowane. Gdy ten parametr jest używany, tylko określone kolumny są cytowane. Ten parametr został dodany w programie PowerShell 7.0.

Właściwości parametru

Typ:

String[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:QF

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-UseCulture

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

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

UseCulture
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-UseQuotes

Określa, kiedy cudzysłowy są używane w plikach CSV. Dopuszczalne wartości:

  • Nigdy — nic nie cytuj
  • Zawsze — cytuj wszystko (zachowanie domyślne)
  • AsNeeded — tylko pola cudzysłowu zawierające znak ogranicznika, podwójny cudzysłów lub znak nowego wiersza

Ten parametr został dodany w programie PowerShell 7.0.

Właściwości parametru

Typ:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Domyślna wartość:Always
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:UQ

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-WhatIf

Uniemożliwia przetwarzanie polecenia cmdlet lub wprowadzanie zmian. Dane wyjściowe pokazują, co by się stało, gdyby polecenie cmdlet zostało uruchomione.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Wi

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

PSObject

Do tego polecenia cmdlet można przekazać dowolny obiekt z adapterem Extended Type System (ETS).

Dane wyjściowe

None

To polecenie cmdlet nie zwraca żadnych danych wyjściowych.

Uwagi

Program PowerShell zawiera następujące aliasy dla Export-Csv:

  • Wszystkie platformy:
    • epcsv

Polecenie Export-Csv cmdlet konwertuje przesyłane obiekty na serię ciągów CSV i zapisuje je w określonym pliku tekstowym. Możesz użyć Export-Csv -IncludeTypeInformation polecenia , aby zapisać obiekty w pliku CSV, a następnie użyć Import-Csv polecenia cmdlet , aby utworzyć obiekty z tekstu w pliku CSV.

W pliku 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 znaków za pomocą metody ToString(). Ciągi są reprezentowane przez nazwę wartości właściwości. Export-Csv -IncludeTypeInformation Nie eksportuje metod obiektu.

Ciągi CSV są danymi wyjściowymi w następujący sposób:

  • Jeśli jest używana funkcja IncludeTypeInformation , pierwszy ciąg zawiera nagłówek informacji #TYPE , po którym następuje w pełni kwalifikowana nazwa typu obiektu. Na przykład #TYPE System.Diagnostics.Process.
  • Jeśli includeTypeInformation nie jest używany pierwszy ciąg zawiera nagłówki kolumn. Nagłówki zawierają nazwy właściwości pierwszego obiektu jako listę rozdzielaną znakami.
  • Pozostałe ciągi zawierają rozdzielane znakami listy wartości właściwości każdego obiektu.

Począwszy od programu PowerShell 6.0 domyślne zachowanie Export-Csv nie polega na dołączaniu #TYPE informacji w pliku CSV i NoTypeInformation. IncludeTypeInformation może służyć do uwzględnienia #TYPE Informacje i emulować domyślne zachowanie Export-Csv programu PowerShell 6.0.

Po przesłaniu wielu obiektów do Export-Csvprogramu program Export-Csv organizuje plik na podstawie właściwości pierwszego przesłanego obiektu. Jeśli pozostałe obiekty nie mają jednej z określonych właściwości, wartość właściwości tego obiektu jest równa null, zgodnie z dwoma kolejnymi przecinkami. Jeśli pozostałe obiekty mają dodatkowe właściwości, te wartości właściwości nie są uwzględniane w pliku.

Za pomocą Import-Csv polecenia cmdlet można odtworzyć obiekty z ciągów CSV w plikach. Wynikowe obiekty są wersjami CSV oryginalnych obiektów, które składają się z ciągów reprezentujących wartości właściwości i nie zawierają metod.

Polecenia ConvertTo-Csv cmdlet i ConvertFrom-Csv konwertują obiekty na ciągi CSV i z ciągów CSV. Export-Csv jest taki sam jak ConvertTo-Csv, z tą różnicą, że zapisuje ciągi CSV w pliku.