Export-Csv
Converte gli oggetti in una serie di stringhe con valori delimitati da caratteri (CSV) e salva le stringhe in un file.
Sintassi
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>]
Descrizione
Il cmdlet Export-CSV
crea un file CSV degli oggetti inviati. Ogni oggetto è una riga che include un elenco separato da caratteri dei valori delle proprietà dell'oggetto. È possibile usare il cmdlet Export-CSV
per creare fogli di calcolo e condividere dati con programmi che accettano file CSV come input.
Non formattare gli oggetti prima di inviarli al cmdlet Export-CSV
. Se Export-CSV
riceve oggetti formattati, il file CSV contiene le proprietà di formato anziché le proprietà dell'oggetto. Per esportare solo le proprietà selezionate di un oggetto, utilizzare il cmdlet Select-Object
.
Esempio
Esempio 1: Esportare le proprietà del processo in un file CSV
Questo esempio seleziona Processo oggetti con proprietà specifiche, esporta gli oggetti in un file 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
Il cmdlet Get-Process
ottiene gli oggetti Process. Il parametro Name filtra l'output in modo da includere solo gli oggetti di processo WmiPrvSE. Gli oggetti processo vengono inviati alla pipeline al cmdlet Select-Object
.
Select-Object
usa il parametro proprietà per selezionare un subset di proprietà dell'oggetto processo. Gli oggetti processo vengono inviati alla pipeline al cmdlet Export-Csv
.
Export-Csv
converte gli oggetti processo in una serie di stringhe CSV. Il parametro Percorso specifica che il file WmiData.csv
viene salvato nella directory corrente. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV e non è necessaria in PowerShell 6. Il cmdlet Import-Csv
usa il parametro Path per visualizzare il file che si trova nella directory corrente.
Esempio 2: Esportare i processi in un file delimitato da virgole
Questo esempio ottiene oggetti processo ed esporta gli oggetti in un file 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", ...
Il cmdlet Get-Process
ottiene oggetti process. Gli oggetti processo vengono inviati alla pipeline al cmdlet Export-Csv
.
Export-Csv
converte gli oggetti processo in una serie di stringhe CSV. Il parametro Percorso specifica che il file Processes.csv
viene salvato nella directory corrente. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV e non è necessaria in PowerShell 6. Il cmdlet Get-Content
usa il parametro Path per visualizzare il file che si trova nella directory corrente.
Esempio 3: Esportare i processi in un file delimitato da punto e virgola
Questo esempio ottiene process oggetti ed esporta gli oggetti in un file con un delimitatore punto e virgola.
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"; ...
Il cmdlet Get-Process
ottiene oggetti process. Gli oggetti processo vengono inviati alla pipeline al cmdlet Export-Csv
.
Export-Csv
converte gli oggetti processo in una serie di stringhe CSV. Il parametro Percorso specifica che il file Processes.csv
viene salvato nella directory corrente. Il parametro Delimiter specifica un punto e virgola per separare i valori stringa. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV e non è necessaria in PowerShell 6. Il cmdlet Get-Content
usa il parametro Path per visualizzare il file che si trova nella directory corrente.
Esempio 4: Esportare i processi usando il separatore di elenco delle impostazioni cultura correnti
Questo esempio ottiene oggetti process ed esporta gli oggetti in un file. Il delimitatore è il separatore di elenco delle impostazioni cultura correnti.
(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", ...
Il cmdlet Get-Culture
usa le proprietà annidate TextInfo e ListSeparator e visualizza il separatore di elenco predefinito delle impostazioni cultura correnti. Il cmdlet Get-Process
ottiene oggetti process. Gli oggetti processo vengono inviati alla pipeline al cmdlet Export-Csv
.
Export-Csv
converte gli oggetti processo in una serie di stringhe CSV. Il parametro Percorso specifica che il file Processes.csv
viene salvato nella directory corrente. Il parametro UseCulture usa il separatore di elenco predefinito delle impostazioni cultura correnti come delimitatore. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV e non è necessaria in PowerShell 6. Il cmdlet Get-Content
usa il parametro Path per visualizzare il file che si trova nella directory corrente.
Esempio 5: Esportare processi con informazioni sul tipo
Questo esempio illustra come includere le informazioni sull'intestazione #TYPE in un file CSV. L'intestazione #TYPE è l'impostazione predefinita nelle versioni precedenti a 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", ...
Il cmdlet Get-Process
ottiene oggetti process. Gli oggetti processo vengono inviati alla pipeline al cmdlet Export-Csv
.
Export-Csv
converte gli oggetti processo in una serie di stringhe CSV. Il parametro Percorso specifica che il file Processes.csv
viene salvato nella directory corrente. Il IncludeTypeInformation include l'intestazione delle informazioni #TYPE nell'output CSV. Il cmdlet Get-Content
usa il parametro Path per visualizzare il file che si trova nella directory corrente.
Esempio 6: Esportare e aggiungere oggetti a un file CSV
In questo esempio viene descritto come esportare oggetti in un file CSV e usare il parametro append per aggiungere oggetti a un file esistente.
$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"
Il cmdlet Get-Service
ottiene gli oggetti servizio. Il parametro DisplayName restituisce i servizi che contengono la parola Application. Gli oggetti servizio vengono inviati alla pipeline al cmdlet Select-Object
.
Select-Object
usa il parametro Property per specificare le proprietà DisplayName e Status. La variabile $AppService
archivia gli oggetti .
Gli oggetti $AppService
vengono inviati alla pipeline al cmdlet Export-Csv
.
Export-Csv
converte gli oggetti servizio in una serie di stringhe CSV. Il parametro Percorso specifica che il file Services.csv
viene salvato nella directory corrente. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV e non è necessaria in PowerShell 6. Il cmdlet Get-Content
usa il parametro Path per visualizzare il file che si trova nella directory corrente.
I cmdlet Get-Service
e Select-Object
vengono ripetuti per i servizi che contengono la parola Windows. La variabile $WinService
archivia gli oggetti servizio. Il cmdlet Export-Csv
usa il parametro Append per specificare che gli oggetti $WinService
vengono aggiunti al file di Services.csv
esistente. Il cmdlet Get-Content
viene ripetuto per visualizzare il file aggiornato che include i dati aggiunti.
Esempio 7: Formattare il cmdlet all'interno di una pipeline crea risultati imprevisti
Questo esempio illustra perché è importante non usare un cmdlet di formato all'interno di una pipeline. Quando viene ricevuto un output imprevisto, risolvere i problemi relativi alla sintassi della pipeline.
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",,,,,
Il cmdlet Get-Date
ottiene l'oggetto DateTime. L'oggetto viene inviato alla pipeline al cmdlet Select-Object
.
Select-Object
utilizza il parametro property per selezionare un subset di proprietà dell'oggetto. L'oggetto viene inviato alla pipeline al cmdlet Export-Csv
.
Export-Csv
converte l'oggetto in un formato CSV. Il parametro Percorso specifica che il file DateTime.csv
viene salvato nella directory corrente. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV e non è necessaria in PowerShell 6. Il cmdlet Get-Content
usa il parametro Path per visualizzare il file CSV che si trova nella directory corrente.
Quando il cmdlet Format-Table
viene usato all'interno della pipeline per selezionare le proprietà vengono ricevuti risultati imprevisti.
Format-Table
invia oggetti di formato tabella verso il basso nella pipeline al cmdlet di Export-Csv
anziché all'oggetto DateTime.
Export-Csv
converte gli oggetti di formato tabella in una serie di stringhe CSV. Il cmdlet Get-Content
visualizza il file CSV che contiene gli oggetti formato tabella.
Esempio 8: Uso del parametro Force per sovrascrivere i file di sola lettura
Questo esempio crea un file vuoto di sola lettura e usa il parametro Force per aggiornare il file.
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"; ...
Il cmdlet New-Item
usa i parametri Path e ItemType per creare il file ReadOnly.csv
nella directory corrente. Il cmdlet Set-ItemProperty
usa i parametri Name e Value per modificare la proprietà IsReadOnly del file su true. Il cmdlet Get-Process
ottiene oggetti process. Gli oggetti processo vengono inviati alla pipeline al cmdlet Export-Csv
.
Export-Csv
converte gli oggetti processo in una serie di stringhe CSV. Il parametro Percorso specifica che il file ReadOnly.csv
viene salvato nella directory corrente. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV e non è necessaria in PowerShell 6. L'output mostra che il file non è scritto perché l'accesso è negato.
Il parametro Force viene aggiunto al cmdlet Export-Csv
per forzare l'esportazione a scrivere nel file. Il cmdlet Get-Content
usa il parametro Path per visualizzare il file che si trova nella directory corrente.
Esempio 9: Uso del parametro Force con Append
In questo esempio viene illustrato come usare i parametri Force e Append . Quando questi parametri vengono combinati, le proprietà degli oggetti non corrispondenti possono essere scritte in un file 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
Un'espressione crea l'PSCustomObject con Name e proprietà Version. I valori vengono archiviati nella variabile $Content
. La variabile $Content
viene inviata alla pipeline al cmdlet Export-Csv
.
Export-Csv
usa il parametro Path e salva il file ParmFile.csv
nella directory corrente. Il parametro NoTypeInformation rimuove l'intestazione delle informazioni #TYPE dall'output CSV e non è necessaria in PowerShell 6.
Un'altra espressione crea un PSCustomObject con le proprietà Name e Edition. I valori vengono archiviati nella variabile $AdditionalContent
. La variabile $AdditionalContent
viene inviata alla pipeline al cmdlet Export-Csv
. Il parametro Append viene usato per aggiungere i dati al file. L'accodamento ha esito negativo perché esiste una mancata corrispondenza tra Version e Edition.
Il cmdlet Export-Csv
parametro Force viene usato per forzare l'esportazione per scrivere nel file. La proprietà Edition viene rimossa. Il cmdlet Import-Csv
usa il parametro Path per visualizzare il file che si trova nella directory corrente.
Esempio 10: Esportare in csv con virgolette intorno a due colonne
In questo esempio viene convertito un oggetto DateTime in una stringa 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
Esempio 11: Esporta in CSV con virgolette solo quando necessario
In questo esempio viene convertito un oggetto DateTime in una stringa 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
Esempio 12: Convertire tabelle hash in CSV
In PowerShell 7.2 e versioni successive, quando si esportano tabelle hash in csv, le chiavi della prima tabella hash vengono serializzate e usate come intestazioni nell'output del file 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"
Esempio 13: Conversione di tabelle hash in CSV con proprietà aggiuntive
In PowerShell 7.2 e versioni successive, quando si esporta una tabella hash con proprietà aggiuntive aggiunte con Add-Member
o Select-Object
vengono aggiunte anche le proprietà aggiuntive come intestazione nel file 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"
Ogni tabella hash ha una proprietà denominata ExtraProp
aggiunta da Add-Member
e quindi esportata in CSV. È possibile visualizzare ExtraProp
è ora un'intestazione nell'output del file CSV.
Se una proprietà aggiunta ha lo stesso nome di una chiave della tabella hash, la chiave ha la precedenza e solo la chiave viene esportata in CSV.
Parametri
-Append
Usare questo parametro in modo che Export-CSV
aggiunge l'output CSV alla fine del file specificato. Senza questo parametro, Export-CSV
sostituisce il contenuto del file senza avviso.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Delimiter
Specifica un delimitatore per separare i valori delle proprietà. Il valore predefinito è una virgola (,
). Immettere un carattere, ad esempio due punti (:
). Per specificare un punto e virgola (;
), racchiuderlo tra virgolette.
Tipo: | Char |
Posizione: | 1 |
Valore predefinito: | comma (,) |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Encoding
Specifica la codifica per il file CSV esportato. Il valore predefinito è utf8NoBOM
.
I valori accettabili per questo parametro sono i seguenti:
-
ascii
: usa la codifica per il set di caratteri ASCII (a 7 bit). -
ansi
: usa la codifica per la tabella codici ANSI delle impostazioni cultura correnti. Questa opzione è stata aggiunta -
bigendianunicode
: codifica in formato UTF-16 usando l'ordine dei byte big-endian. -
bigendianutf32
: codifica in formato UTF-32 usando l'ordine dei byte big-endian. -
oem
: usa la codifica predefinita per i programmi MS-DOS e console. -
unicode
: codifica in formato UTF-16 usando l'ordine dei byte little-endian. -
utf7
: codifica in formato UTF-7. -
utf8
: codifica in formato UTF-8. -
utf8BOM
: codifica in formato UTF-8 con byte order mark (BOM) -
utf8NoBOM
: codifica in formato UTF-8 senza byte order mark (BOM) -
utf32
: codifica in formato UTF-32.
A partire da PowerShell 6.2, il parametro Encoding consente anche ID numerici di tabelle codici registrate (ad esempio -Encoding 1251
) o nomi di stringhe di tabelle codici registrate (ad esempio -Encoding "windows-1251"
). Per altre informazioni, vedere la documentazione di .NET per Encoding.CodePage.
A partire da PowerShell 7.4, è possibile usare il valore Ansi
per il parametro Codifica per passare l'ID numerico per la tabella codici ANSI delle impostazioni cultura correnti senza doverlo specificare manualmente.
Nota
UTF-7 * non è più consigliabile usare. A partire da PowerShell 7.1, viene scritto un avviso se si specifica utf7
per il parametro Encoding.
Tipo: | Encoding |
Valori accettati: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Posizione: | Named |
Valore predefinito: | UTF8NoBOM |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Force
Questo parametro consente Export-Csv
di sovrascrivere i file con l'attributo di sola lettura.
Quando vengono combinati Force e parametri append, gli oggetti che contengono proprietà non corrispondenti possono essere scritti in un file CSV. Solo le proprietà corrispondenti vengono scritte nel file. Le proprietà non corrispondenti vengono rimosse.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-IncludeTypeInformation
Quando questo parametro viene usato la prima riga dell'output CSV contiene #TYPE
seguito dal nome completo del tipo di oggetto. Ad esempio, #TYPE System.Diagnostics.Process
.
Questo parametro è stato introdotto in PowerShell 6.0.
Tipo: | SwitchParameter |
Alias: | ITI |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica gli oggetti da esportare come stringhe CSV. Immettere una variabile contenente gli oggetti o digitare un comando o un'espressione che ottiene gli oggetti . È anche possibile inviare oggetti tramite pipe a Export-CSV
.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-LiteralPath
Specifica il percorso del file di output CSV. A differenza di Path, il valore del parametro LiteralPath viene usato esattamente come viene tipizzato. Nessun carattere viene interpretato come caratteri jolly. Se il percorso include caratteri di escape, usare virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.
Tipo: | String |
Alias: | PSPath, LP |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-NoClobber
Usare questo parametro in modo che Export-CSV
non sovrascriva un file esistente. Per impostazione predefinita, se il file esiste nel percorso specificato, Export-CSV
sovrascrive il file senza avviso.
Tipo: | SwitchParameter |
Alias: | NoOverwrite |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-NoHeader
Quando si usa questo parametro, il cmdlet non scrive una riga di intestazione contenente i nomi delle colonne nell'output.
Questo parametro è stato aggiunto in PowerShell 7.4.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-NoTypeInformation
Rimuove l'intestazione delle informazioni #TYPE
dall'output. Questo parametro è diventato l'impostazione predefinita in PowerShell 6.0 ed è incluso per la compatibilità con le versioni precedenti.
Tipo: | SwitchParameter |
Alias: | NTI |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Path
Parametro obbligatorio che specifica il percorso in cui salvare il file di output CSV.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-QuoteFields
Specifica i nomi delle colonne che devono essere racchiuse tra virgolette. Quando si usa questo parametro, vengono virgolette solo le colonne specificate. Questo parametro è stato aggiunto in PowerShell 7.0.
Tipo: | String[] |
Alias: | QF |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-UseCulture
Usa il separatore di elenco per le impostazioni cultura correnti come delimitatore di elemento. Per trovare il separatore di elenco per le impostazioni cultura, usare il comando seguente: (Get-Culture).TextInfo.ListSeparator
.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-UseQuotes
Specifica quando le virgolette vengono usate nei file CSV. I valori possibili sono:
- Mai - non virgolette nulla
- Sempre - Virgolette tutto (comportamento predefinito)
- AsNeeded: solo i campi virgolette che contengono un carattere delimitatore, virgolette doppie o caratteri di nuova riga
Questo parametro è stato aggiunto in PowerShell 7.0.
Tipo: | Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind |
Alias: | UQ |
Posizione: | Named |
Valore predefinito: | Always |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Impedisce l'elaborazione o l'esecuzione di modifiche al cmdlet. L'output mostra cosa accadrebbe se il cmdlet fosse in esecuzione.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe qualsiasi oggetto con un adattatore ETS (Extended Type System) a questo cmdlet.
Output
None
Questo cmdlet non restituisce alcun output.
Note
PowerShell include gli alias seguenti per Export-Csv
:
- Tutte le piattaforme:
epcsv
Il cmdlet Export-CSV
converte gli oggetti inviati in una serie di stringhe CSV e le salva nel file di testo specificato. È possibile usare Export-CSV -IncludeTypeInformation
per salvare gli oggetti in un file CSV e quindi usare il cmdlet Import-Csv
per creare oggetti dal testo nel file CSV.
Nel file CSV ogni oggetto è rappresentato da un elenco delimitato da caratteri dei valori delle proprietà dell'oggetto. I valori della proprietà vengono convertiti in stringhe usando il metodo ToString(). Le stringhe sono rappresentate dal nome del valore della proprietà.
Export-CSV -IncludeTypeInformation
non esporta i metodi dell'oggetto.
Le stringhe CSV vengono restituite come segue:
- Se viene utilizzato IncludeTypeInformation, la prima stringa contiene l'intestazione delle informazioni #TYPE seguita dal nome completo del tipo di oggetto. Ad esempio, #TYPE System.Diagnostics.Process.
- Se IncludeTypeInformation non viene usata la prima stringa include le intestazioni di colonna. Le intestazioni contengono i nomi delle proprietà del primo oggetto come elenco delimitato da caratteri.
- Le stringhe rimanenti contengono elenchi separati da caratteri dei valori delle proprietà di ogni oggetto.
A partire da PowerShell 6.0 il comportamento predefinito di Export-CSV
consiste nell'non includere le informazioni di #TYPE nel file CSV e NoTypeInformation è implicito.
IncludeTypeInformation può essere usato per includere le informazioni #TYPE ed emulare il comportamento predefinito di Export-CSV
prima di PowerShell 6.0.
Quando si inviano più oggetti a Export-CSV
, Export-CSV
organizza il file in base alle proprietà del primo oggetto inviato. Se gli oggetti rimanenti non dispongono di una delle proprietà specificate, il valore della proprietà di tale oggetto è Null, come rappresentato da due virgole consecutive. Se gli oggetti rimanenti hanno proprietà aggiuntive, tali valori di proprietà non vengono inclusi nel file.
È possibile usare il cmdlet Import-Csv
per ricreare oggetti dalle stringhe CSV nei file. Gli oggetti risultanti sono versioni CSV degli oggetti originali costituiti da rappresentazioni di stringa dei valori delle proprietà e nessun metodo.
I cmdlet ConvertTo-Csv
e ConvertFrom-Csv
converte gli oggetti in stringhe CSV e da stringhe CSV.
Export-CSV
è uguale a ConvertTo-CSV
, ad eccezione del fatto che salva le stringhe CSV in un file.