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>]
[-NoHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Export-Csv
-InputObject <PSObject>
[[-Path] <String>]
[-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 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-Object
uż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.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
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. 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).ansi
: używa kodowania dla strony kodowej ANSI bieżącej kultury. Ta opcja została dodanabigendianunicode
: 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.
Począwszy od programu PowerShell 7.4, można użyć Ansi
wartości parametru Kodowanie , aby przekazać identyfikator liczbowy dla strony kodowej ANSI bieżącej kultury bez konieczności ręcznego określania go.
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 .
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 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.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
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ść: | False |
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ż przekazać obiekty potokowe do Export-CSV
obiektu .
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 ś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.
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, 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.
Typ: | SwitchParameter |
Aliasy: | NoOverwrite |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | SwitchParameter |
Aliasy: | NTI |
Position: | Named |
Domyślna wartość: | False |
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ść: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
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
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-CSV
programu 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.