Udostępnij za pośrednictwem


Export-Csv

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

Składnia

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

Opis

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

Nie należy formatować obiektów przed wysłaniem ich do polecenia cmdlet Export-CSV. Jeśli Export-CSV odbiera sformatowane obiekty, plik CSV zawiera właściwości formatu, a nie właściwości obiektu. Aby wyeksportować tylko wybrane właściwości obiektu, użyj polecenia cmdlet Select-Object.

Przykłady

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

W tym przykładzie wybiera Process obiektów z określonymi właściwościami, eksportuje 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 cmdlet pobiera obiekty procesu . Parametr Name filtruje dane wyjściowe w celu uwzględnienia tylko obiektów procesu WmiPrvSE. Obiekty procesu są wysyłane w dół potoku do polecenia cmdlet Select-Object. używa parametru property , aby wybrać podzbiór 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 ścieżki określa, że plik WmiData.csv 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 cmdlet używa parametru ścieżka , aby wyświetlić plik znajdujący się w bieżącym katalogu.

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

Ten przykład pobiera obiekty Process i eksportuje obiekty 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 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 ścieżki określa, że plik Processes.csv 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 cmdlet używa parametru ścieżka , aby wyświetlić plik znajdujący się w bieżącym katalogu.

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

Ten przykład pobiera obiekty Process i eksportuje obiekty 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 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 ścieżki określa, że plik Processes.csv 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 cmdlet używa parametru ścieżka , aby wyświetlić plik znajdujący się w bieżącym katalogu.

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

Ten przykład pobiera obiekty Process i eksportuje obiekty 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 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 ścieżki określa, że plik Processes.csv 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 cmdlet używa parametru ścieżka , aby wyświetlić plik znajdujący się w bieżącym katalogu.

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

W tym przykładzie wyjaśniono, jak uwzględnić informacje nagłówka #TYPE w pliku CSV. Nagłówek #TYPE jest domyślny w wersjach wcześniejszych niż program 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 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 ścieżki określa, że plik Processes.csv jest zapisywany w bieżącym katalogu. IncludeTypeInformation zawiera nagłówek informacji #TYPE w danych wyjściowych CSV. Polecenie cmdlet używa parametru ścieżka , aby wyświetlić plik znajdujący 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 cmdlet Get-Service pobiera obiekty usługi. Parametr DisplayName zwraca usługi zawierające słowo Application. Obiekty usługi są wysyłane w dół potoku do polecenia cmdlet 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 ścieżki określa, że plik Services.csv 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 cmdlet używa parametru ścieżka , aby wyświetlić plik znajdujący się w bieżącym katalogu.

Polecenia cmdlet Get-Service i Select-Object są powtarzane w przypadku usług zawierających słowo Windows. Zmienna $WinService przechowuje obiekty usługi. Polecenie cmdlet Export-Csv używa parametru Append, aby określić, że obiekty $WinService są dodawane do istniejącego pliku Services.csv. Polecenie cmdlet Get-Content 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 cmdlet Get-Date pobiera obiekt DateTime. Obiekt jest wysyłany w dół potoku do polecenia cmdlet Select-Object. używa parametru property , aby wybrać podzbiór 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 ścieżki określa, że plik DateTime.csv 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 cmdlet używa parametru ścieżka , aby wyświetlić plik CSV znajdujący się w bieżącym katalogu.

Gdy polecenie cmdlet Format-Table jest używane w potoku do wybierania właściwości, zostaną odebrane nieoczekiwane wyniki. Format-Table wysyła obiekty formatu tabeli w dół potoku do polecenia cmdlet Export-Csv zamiast obiektu DateTime. Export-Csv konwertuje obiekty formatu tabeli na serię ciągów CSV. Polecenie cmdlet Get-Content wyświetla plik CSV zawierający obiekty formatu tabeli.

Przykład 8. Używanie parametru Force do zastępowania plików tylko do odczytu

W tym przykładzie jest tworzony pusty plik tylko do odczytu i używa parametru 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 cmdlet używa parametrów ścieżki i ItemType w celu utworzenia pliku ReadOnly.csv w bieżącym katalogu. Polecenie cmdlet używa parametrów Name i Value, aby zmienić właściwość IsReadOnly pliku na true. Polecenie 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 ścieżki określa, że plik ReadOnly.csv 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ż odmowa dostępu.

Parametr Force jest dodawany do polecenia cmdlet Export-Csv w celu wymuszenia eksportu na zapis w pliku. Polecenie cmdlet używa parametru ścieżka , aby wyświetlić plik znajdujący się w bieżącym katalogu.

Przykład 9: Używanie parametru Force z funkcją Append

W tym przykładzie pokazano, jak używać parametrów Force i Append. Po połączeniu tych parametrów do pliku CSV można zapisywać niezgodne właściwości obiektu.

$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 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 plik ParmFile.csv 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 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ż występuje niezgodność nazwy właściwości między Version i Edition.

Polecenie cmdlet Export-CsvForce parametr służy do wymuszania eksportu zapisu w pliku. Właściwość edition jest odrzucana. Polecenie cmdlet używa parametru ścieżka , aby wyświetlić plik znajdujący 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

Parametry

-Append

Użyj tego parametru, aby Export-CSV dodawał dane wyjściowe CSV na końcu określonego pliku. Bez tego parametru Export-CSV zastępuje zawartość pliku bez ostrzeżenia.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Delimiter

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

Typ:Char
Position:1
Domyślna wartość:comma (,)
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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).
  • bigendianunicode: koduje w formacie UTF-16 przy użyciu kolejności 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 przy użyciu kolejności 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 bez znaku kolejności bajtów (BOM)
  • utf32: koduje w formacie UTF-32.

Począwszy od programu PowerShell 6.2, Kodowanie parametr umożliwia również numeryczne identyfikatory zarejestrowanych stron kodu (na przykład -Encoding 1251) lub nazwy ciągów zarejestrowanych stron kodu (na przykład -Encoding "windows-1251"). Aby uzyskać więcej informacji, zobacz dokumentację platformy .NET dotyczącą Encoding.CodePage.

Nuta

UTF-7 * nie jest już zalecane. Zgodnie z programem PowerShell 7.1 ostrzeżenie jest zapisywane, jeśli określisz dla parametru kodowania .

Typ:Encoding
Dopuszczalne wartości:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Domyślna wartość:UTF8NoBOM
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Force

Ten parametr umożliwia Export-Csv zastępowanie plików atrybutem tylko do odczytu.

Gdy parametry Force i Append są łączone, obiekty, które zawierają niezgodne właściwości, mogą być zapisywane w pliku CSV. Tylko te właściwości, które są zgodne, są zapisywane w pliku. Niedopasowane właściwości są odrzucane.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

Typ:SwitchParameter
Aliasy:ITI
Position:Named
Domyślna wartość:#TYPE <Object>
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-InputObject

Określa obiekty do wyeksportowania 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.

Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-LiteralPath

Określa ścieżkę do pliku wyjściowego CSV. W przeciwieństwie do Pathwartość parametru LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, użyj pojedynczych cudzysłowów. Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Typ:String
Aliasy:PSPath, LP
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-NoClobber

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

Typ:SwitchParameter
Aliasy:NoOverwrite
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

Typ:SwitchParameter
Aliasy:NTI
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Path

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

Typ:String
Position:0
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

Typ:String[]
Aliasy:QF
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-UseQuotes

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

  • Nigdy — nic nie cytuj
  • Zawsze — cytuj wszystko (zachowanie domyślne)
  • AsNeeded — tylko pola cudzysłowu zawierające znak ogranicznika

Ten parametr został dodany w programie PowerShell 7.0.

Typ:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Aliasy:UQ
Position:Named
Domyślna wartość:Always
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-WhatIf

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

Typ:SwitchParameter
Aliasy:wi
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSObject

Do Export-CSVmożna przekazać dowolny obiekt z kartą systemu rozszerzonego typu (ETS) .

Dane wyjściowe

String

Lista CSV jest wysyłana do pliku wyznaczonego w parametrze Ścieżka.

Uwagi

Polecenie cmdlet Export-CSV konwertuje obiekty przesyłane do serii ciągów CSV i zapisuje je w określonym pliku tekstowym. Za pomocą Export-CSV -IncludeTypeInformation można zapisywać obiekty w pliku CSV, a następnie użyć polecenia cmdlet Import-Csv do utworzenia obiektów z tekstu w pliku CSV.

W pliku 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(). 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 IncludeTypeInformation, pierwszy ciąg zawiera nagłówek #TYPE informacji, a następnie w pełni kwalifikowaną nazwę 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ą przecinkami.
  • Pozostałe ciągi zawierają rozdzielane przecinkami 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 informacji #TYPE i emulowania domyślnego zachowania Export-CSV przed programem PowerShell 6.0.

Podczas przesyłania wielu obiektów do Export-CSVExport-CSV organizuje plik na podstawie właściwości pierwszego przesyłanego obiektu. Jeśli pozostałe obiekty nie mają jednej z określonych właściwości, wartość właściwości tego obiektu ma wartość null, reprezentowana przez dwa kolejne przecinki. Jeśli pozostałe obiekty mają dodatkowe właściwości, te wartości właściwości nie są uwzględniane w pliku.

Możesz użyć polecenia cmdlet Import-Csv, aby odtworzyć obiekty z ciągów CSV w plikach. Wynikowe obiekty to wersje CSV oryginalnych obiektów, które składają się z reprezentacji ciągów wartości właściwości i bez metod.

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