Export-Csv

Konwertuje obiekty na serię ciągów wartości rozdzielanych znakami (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 Export-CSV cmdlet tworzy plik CSV przesyłanych obiektów. 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 . 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 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 Przetwarzania 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 Get-Process 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 Select-Object 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 Export-Csv do polecenia cmdlet. 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

Ten przykład pobiera obiekty procesu 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 Get-Process cmdlet pobiera obiekty Procesu . Obiekty procesu są wysyłane w dół potoku Export-Csv do polecenia cmdlet. 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

Ten przykład pobiera obiekty Procesu 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 Get-Process cmdlet pobiera obiekty Procesu . Obiekty procesu są wysyłane w dół potoku Export-Csv do polecenia cmdlet. 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 ogranicznika 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

Ten przykład pobiera obiekty Procesu 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 Get-Culture cmdlet 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 Export-Csv do polecenia cmdlet. 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 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 Get-Process cmdlet pobiera obiekty Procesu . Obiekty procesu są wysyłane w dół potoku Export-Csv do polecenia cmdlet. 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 do dodawania 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 zawierające słowo Application. Obiekty usługi są wysyłane w dół potoku Select-Object do polecenia cmdlet. Select-Objectużywa parametru Property, aby określić właściwości DisplayName i Status. Zmienna $AppService przechowuje obiekty.

Obiekty $AppService są wysyłane w dół potoku Export-Csv do polecenia cmdlet. 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 Select-Object do polecenia cmdlet. Select-Object używa parametru Właściwość , aby wybrać podzbiór właściwości obiektu. Obiekt jest wysyłany w dół potoku Export-Csv do polecenia cmdlet. 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, zostaną odebrane nieoczekiwane wyniki. Format-Table Wysyła obiekty w formacie tabeli w dół potoku Export-Csv do polecenia cmdlet, a nie do obiektu DateTime . Export-Csv Konwertuje obiekty w formacie tabeli na serię ciągów CSV. Polecenie Get-Content cmdlet 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 do 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 Nazwa i Wartość, aby zmienić właściwość IsReadOnly pliku na true. Polecenie Get-Process cmdlet pobiera obiekty Procesu . Obiekty procesu są wysyłane w dół potoku Export-Csv do polecenia cmdlet. 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ż odmowa dostępu.

Parametr Force jest dodawany do Export-Csv polecenia cmdlet, aby wymusić eksport do zapisu w 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 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 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 Export-Csv do polecenia cmdlet. 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 Export-Csv do polecenia cmdlet. 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 wersją a wydaniem.

Polecenie Export-Csv cmdlet Force parametr służy do wymuszenia eksportu do zapisu w 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

W tym przykładzie obiekt DateTime jest konwertowany 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

W tym przykładzie obiekt DateTime jest konwertowany 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 = 1
}

$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, Export-CSV aby umożliwić dodanie danych wyjściowych 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.

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

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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

-Encoding

Określa kodowanie wyeksportowanego pliku CSV. Domyślna wartość to utf8NoBOM.

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

  • ascii: używa kodowania dla 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ą języka Byte Order Mark (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, parametr Kodowanie umożliwia również numeryczne identyfikatory zarejestrowanych stron kodu (takich jak ) lub nazwy ciągów zarejestrowanych stron kodu (na przykład -Encoding 1251-Encoding "windows-1251"). Aby uzyskać więcej informacji, zobacz dokumentację platformy .NET dotyczącą pliku Encoding.CodePage.

Uwaga

UtF-7* nie jest już zalecane do użycia. Zgodnie z programem PowerShell 7.1 ostrzeżenie jest zapisywane w przypadku określenia utf7 parametru Kodowanie .

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Ten parametr umożliwia Export-Csv zastępowanie plików za pomocą atrybutu 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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Aliases:ITI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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ż przekazać obiekty potokowe do Export-CSVobiektu .

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

-LiteralPath

Określa ścieżkę do pliku wyjściowego CSV. W przeciwieństwie do ścieżki, wartość 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.

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

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

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoTypeInformation

Usuwa #TYPE nagłówek informacji 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.

Type:SwitchParameter
Aliases:NTI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

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

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:QF
Position:Named
Default value:None
Required:False
Accept pipeline input:False
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:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Aliases:UQ
Position:Named
Default value:Always
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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 programu Export-Csv:

  • Wszystkie platformy:
    • epcsv

Polecenie Export-CSV cmdlet konwertuje obiekty przesyłane do serii 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 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 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 parametr 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ślnym zachowaniem programu Export-CSV jest nie uwzględnianie #TYPE informacji w pliku CSV i noTypeInformation . Funkcji IncludeTypeInformation można użyć do uwzględnienia informacji #TYPE i emulowania domyślnego zachowania wcześniejszego Export-CSV niż program PowerShell 6.0.

Podczas przesyłania wielu obiektów do Export-CSVprogramu Export-CSV program 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ć Import-Csv polecenia cmdlet , 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 ConvertTo-Csv cmdlet i ConvertFrom-Csv konwertują obiekty na ciągi CSV i z ciągów CSV. Export-CSV jest taka sama jak ConvertTo-CSV, z tą różnicą, że zapisuje ciągi CSV w pliku.