Export-Csv
Convierte los objetos en una serie de cadenas de valores separados por caracteres (CSV) y guarda las cadenas en un archivo.
Syntax
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>]
Description
El Export-CSV
cmdlet crea un archivo CSV de los objetos que envía. Cada objeto es una fila que incluye una lista separada por caracteres de los valores de propiedad del objeto. Puede usar el Export-CSV
cmdlet para crear hojas de cálculo y compartir datos con programas que aceptan archivos CSV como entrada.
No dé formato a los objetos antes de enviarlos al Export-CSV
cmdlet . Si Export-CSV
recibe objetos con formato, el archivo CSV contiene las propiedades de formato en lugar de las propiedades del objeto. Para exportar solo las propiedades seleccionadas de un objeto, use el Select-Object
cmdlet .
Ejemplos
Ejemplo 1: Exportación de propiedades de proceso a un archivo CSV
En este ejemplo se selecciona Procesar objetos con propiedades específicas, exporta los objetos a un archivo 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
El Get-Process
cmdlet obtiene los objetos Process . El parámetro Name filtra la salida para incluir solo los objetos de proceso WmiPrvSE. Los objetos de proceso se envían por la canalización al Select-Object
cmdlet . Select-Object
usa el parámetro Property para seleccionar un subconjunto de propiedades de objeto de proceso. Los objetos de proceso se envían por la canalización al Export-Csv
cmdlet . Export-Csv
convierte los objetos de proceso en una serie de cadenas CSV. El parámetro Path especifica que el WmiData.csv
archivo se guarda en el directorio actual. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El Import-Csv
cmdlet usa el parámetro Path para mostrar el archivo ubicado en el directorio actual.
Ejemplo 2: Exportación de procesos a un archivo delimitado por comas
En este ejemplo se obtienen objetos Process y se exporta los objetos a un archivo 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", ...
El Get-Process
cmdlet obtiene objetos Process . Los objetos de proceso se envían por la canalización al Export-Csv
cmdlet . Export-Csv
convierte los objetos de proceso en una serie de cadenas CSV. El parámetro Path especifica que el Processes.csv
archivo se guarda en el directorio actual. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El Get-Content
cmdlet usa el parámetro Path para mostrar el archivo ubicado en el directorio actual.
Ejemplo 3: Exportación de procesos a un archivo delimitado por punto y coma
En este ejemplo se obtienen objetos Process y se exportan los objetos a un archivo con un delimitador de punto y coma.
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"; ...
El Get-Process
cmdlet obtiene objetos Process . Los objetos de proceso se envían por la canalización al Export-Csv
cmdlet . Export-Csv
convierte los objetos de proceso en una serie de cadenas CSV. El parámetro Path especifica que el Processes.csv
archivo se guarda en el directorio actual. El parámetro Delimiter especifica un punto y coma para separar los valores de cadena. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El Get-Content
cmdlet usa el parámetro Path para mostrar el archivo ubicado en el directorio actual.
Ejemplo 4: Exportación de procesos mediante el separador de lista de la referencia cultural actual
En este ejemplo se obtienen objetos Process y se exporta los objetos a un archivo. El delimitador es el separador de lista de la referencia cultural actual.
(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", ...
El Get-Culture
cmdlet usa las propiedades anidadas TextInfo y ListSeparator y muestra el separador de lista predeterminado de la referencia cultural actual. El Get-Process
cmdlet obtiene objetos Process . Los objetos de proceso se envían por la canalización al Export-Csv
cmdlet . Export-Csv
convierte los objetos de proceso en una serie de cadenas CSV. El parámetro Path especifica que el Processes.csv
archivo se guarda en el directorio actual. El parámetro UseCulture usa el separador de lista predeterminado de la referencia cultural actual como delimitador. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El Get-Content
cmdlet usa el parámetro Path para mostrar el archivo ubicado en el directorio actual.
Ejemplo 5: Exportación de procesos con información de tipo
En este ejemplo se explica cómo incluir la información de encabezado #TYPE en un archivo CSV. El encabezado #TYPE es el valor predeterminado en versiones anteriores 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", ...
El Get-Process
cmdlet obtiene objetos Process . Los objetos de proceso se envían por la canalización al Export-Csv
cmdlet . Export-Csv
convierte los objetos de proceso en una serie de cadenas CSV. El parámetro Path especifica que el Processes.csv
archivo se guarda en el directorio actual. IncludeTypeInformation incluye el encabezado de información #TYPE en la salida CSV. El Get-Content
cmdlet usa el parámetro Path para mostrar el archivo ubicado en el directorio actual.
Ejemplo 6: Exportación y anexión de objetos a un archivo CSV
En este ejemplo se describe cómo exportar objetos a un archivo CSV y usar el parámetro Append para agregar objetos a un archivo existente.
$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"
El Get-Service
cmdlet obtiene objetos de servicio. El parámetro DisplayName devuelve servicios que contienen la palabra Application. Los objetos de servicio se envían por la canalización al Select-Object
cmdlet . Select-Object
usa el parámetro Property para especificar las propiedades DisplayName y Status . La $AppService
variable almacena los objetos.
Los $AppService
objetos se envían por la canalización al Export-Csv
cmdlet . Export-Csv
convierte los objetos de servicio en una serie de cadenas CSV. El parámetro Path especifica que el Services.csv
archivo se guarda en el directorio actual. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El Get-Content
cmdlet usa el parámetro Path para mostrar el archivo ubicado en el directorio actual.
Los Get-Service
cmdlets y Select-Object
se repiten para los servicios que contienen la palabra Windows. La $WinService
variable almacena los objetos de servicio. El Export-Csv
cmdlet usa el parámetro Append para especificar que los $WinService
objetos se agregan al archivo existente Services.csv
. El Get-Content
cmdlet se repite para mostrar el archivo actualizado que incluye los datos anexados.
Ejemplo 7: El cmdlet Format dentro de una canalización crea resultados inesperados
En este ejemplo se muestra por qué es importante no usar un cmdlet de formato dentro de una canalización. Cuando se recibe una salida inesperada, solucione los problemas de la sintaxis de la canalización.
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",,,,,
El Get-Date
cmdlet obtiene el objeto DateTime . El objeto se envía por la canalización al Select-Object
cmdlet . Select-Object
usa el parámetro Property para seleccionar un subconjunto de propiedades de objeto. El objeto se envía por la canalización al Export-Csv
cmdlet . Export-Csv
convierte el objeto en un formato CSV. El parámetro Path especifica que el DateTime.csv
archivo se guarda en el directorio actual. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El Get-Content
cmdlet usa el parámetro Path para mostrar el archivo CSV ubicado en el directorio actual.
Cuando se usa el Format-Table
cmdlet dentro de la canalización para seleccionar las propiedades, se reciben resultados inesperados. Format-Table
envía objetos de formato de tabla a la Export-Csv
canalización al cmdlet en lugar del objeto DateTime . Export-Csv
convierte los objetos de formato de tabla en una serie de cadenas CSV. El Get-Content
cmdlet muestra el archivo CSV que contiene los objetos de formato de tabla.
Ejemplo 8: Uso del parámetro Force para sobrescribir archivos de solo lectura
En este ejemplo se crea un archivo vacío de solo lectura y se usa el parámetro Force para actualizar el archivo.
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"; ...
El New-Item
cmdlet usa los parámetros Path y ItemType para crear el ReadOnly.csv
archivo en el directorio actual. El Set-ItemProperty
cmdlet usa los parámetros Name y Value para cambiar la propiedad IsReadOnly del archivo a true. El Get-Process
cmdlet obtiene objetos Process . Los objetos de proceso se envían por la canalización al Export-Csv
cmdlet .
Export-Csv
convierte los objetos de proceso en una serie de cadenas CSV. El parámetro Path especifica que el ReadOnly.csv
archivo se guarda en el directorio actual. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. La salida muestra que el archivo no está escrito porque se deniega el acceso.
El parámetro Force se agrega al Export-Csv
cmdlet para forzar que la exportación escriba en el archivo. El Get-Content
cmdlet usa el parámetro Path para mostrar el archivo ubicado en el directorio actual.
Ejemplo 9: Uso del parámetro Force con Append
En este ejemplo se muestra cómo usar los parámetros Force y Append . Cuando se combinan estos parámetros, las propiedades de objeto no coincidentes se pueden escribir en un archivo 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
Una expresión crea el PSCustomObject con las propiedades Name y Version . Los valores se almacenan en la $Content
variable . La $Content
variable se envía a la canalización al Export-Csv
cmdlet . Export-Csv
usa el parámetro Path y guarda el ParmFile.csv
archivo en el directorio actual. El parámetro NoTypeInformation quita el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6.
Otra expresión crea un PSCustomObject con las propiedades Name y Edition . Los valores se almacenan en la $AdditionalContent
variable . La $AdditionalContent
variable se envía a la canalización al Export-Csv
cmdlet . El parámetro Append se usa para agregar los datos al archivo. Se produce un error en la anexión porque hay un error de coincidencia de nombre de propiedad entre Version y Edition.
El Export-Csv
parámetro Force del cmdlet se usa para forzar que la exportación escriba en el archivo. La propiedad Edition se descarta. El Import-Csv
cmdlet usa el parámetro Path para mostrar el archivo ubicado en el directorio actual.
Ejemplo 10: Exportación a CSV con comillas alrededor de dos columnas
En este ejemplo se convierte un objeto DateTime en una cadena 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
Ejemplo 11: Exportar a CSV con comillas solo cuando sea necesario
En este ejemplo se convierte un objeto DateTime en una cadena 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
Ejemplo 12: Conversión de tablas hash a CSV
En PowerShell 7.2 y versiones posteriores, al exportar tablas hash a CSV, las claves de la primera tabla hash se serializan y se usan como encabezados en la salida del archivo 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"
Ejemplo 13: Conversión de tablas hash a CSV con propiedades adicionales
En PowerShell 7.2 y versiones posteriores, cuando se exporta una tabla hash que tiene propiedades adicionales agregadas con Add-Member
o Select-Object
las propiedades adicionales también se agregan como encabezado en el archivo 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"
Cada tabla hash tiene una propiedad denominada ExtraProp
agregada por Add-Member
y, a continuación, exportada a CSV. Ahora puede ver ExtraProp
que es un encabezado en la salida del archivo CSV.
Si una propiedad agregada tiene el mismo nombre que una clave de la tabla hash, la clave tiene prioridad y solo la clave se exporta a CSV.
Parámetros
-Append
Use este parámetro para que Export-CSV
agregue la salida CSV al final del archivo especificado. Sin este parámetro, Export-CSV
reemplaza el contenido del archivo sin advertencia.
Este parámetro se incorporó en Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Delimiter
Especifica un delimitador para separar los valores de propiedad. El valor predeterminado es una coma (,
). Escriba un carácter, como dos puntos (:
). Para especificar un punto y coma (;
), escríbalo entre comillas.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Especifica la codificación del archivo CSV exportado. El valor predeterminado es utf8NoBOM
.
Los valores aceptables para este parámetro son los siguientes:
ascii
: usa la codificación para el juego de caracteres ASCII (7 bits).bigendianunicode
: codifica en formato UTF-16 con el orden de bytes big-endian.bigendianutf32
: codifica en formato UTF-32 mediante el orden de bytes big-endian.oem
: usa la codificación predeterminada para los programas ms-DOS y de consola.unicode
: codifica en formato UTF-16 con el orden de bytes little-endian.utf7
: codifica en formato UTF-7.utf8
: codifica en formato UTF-8.utf8BOM
: codifica en formato UTF-8 con marca de orden de bytes (BOM)utf8NoBOM
: codifica en formato UTF-8 sin marca de orden de bytes (BOM)utf32
: codifica en formato UTF-32.
A partir de PowerShell 6.2, el parámetro Encoding también permite identificadores numéricos de páginas de códigos registradas (como -Encoding 1251
) o nombres de cadena de páginas de códigos registradas (como -Encoding "windows-1251"
). Para obtener más información, consulte la documentación de .NET para Encoding.CodePage.
Nota
UTF-7* ya no se recomienda usar. A partir de PowerShell 7.1, se escribe una advertencia si especifica utf7
para el parámetro Encoding .
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
Este parámetro permite Export-Csv
sobrescribir archivos con el atributo Solo lectura.
Cuando se combinan parámetros Force y Append , los objetos que contienen propiedades no coincidentes se pueden escribir en un archivo CSV. Solo las propiedades que coinciden se escriben en el archivo. Se descartan las propiedades no coincidedas.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludeTypeInformation
Cuando se usa este parámetro, la primera línea de la salida CSV contiene #TYPE
seguida del nombre completo del tipo de objeto. Por ejemplo, #TYPE System.Diagnostics.Process
.
Este parámetro se introdujo en PowerShell 6.0.
Type: | SwitchParameter |
Aliases: | ITI |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Especifica los objetos para exportar como cadenas CSV. Especifique una variable que contenga los objetos, o escriba un comando o una expresión que obtenga los objetos. También puede canalizar objetos a Export-CSV
.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Especifica la ruta de acceso al archivo de resultados CSV. A diferencia de Path, el valor del parámetro LiteralPath se utiliza exactamente como se escribe. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso incluye caracteres de escape, use comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoClobber
Use este parámetro para que Export-CSV
no sobrescriba un archivo existente. De forma predeterminada, si el archivo existe en la ruta de acceso especificada, Export-CSV
sobrescribe el archivo sin advertencia.
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoTypeInformation
Quita el encabezado de #TYPE
información de la salida. Este parámetro se convirtió en el valor predeterminado en PowerShell 6.0 y se incluye para la compatibilidad con versiones anteriores.
Type: | SwitchParameter |
Aliases: | NTI |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Parámetro necesario que especifica la ubicación para guardar el archivo de salida CSV.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-QuoteFields
Especifica los nombres de las columnas que se deben citar. Cuando se usa este parámetro, solo se citan las columnas especificadas. Este parámetro se agregó en PowerShell 7.0.
Type: | String[] |
Aliases: | QF |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCulture
Usa el separador de lista para la referencia cultural actual como delimitador de elementos. Para buscar el separador de lista de una referencia cultural, use el siguiente comando: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseQuotes
Especifica cuándo se usan comillas en los archivos CSV. Los valores posibles son:
- Nunca- no comillas nada
- Siempre: comillas todo (comportamiento predeterminado)
- AsNeeded: solo campos de comillas que contienen un carácter delimitador, comillas dobles o carácter de nueva línea
Este parámetro se agregó en 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
Impide que el cmdlet se procese o realice cambios. La salida muestra lo que sucedería si se ejecutara el cmdlet.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Puede canalizar cualquier objeto con un adaptador del Sistema de tipos extendidos (ETS) a este cmdlet.
Salidas
None
Este cmdlet no devuelve ningún resultado.
Notas
PowerShell incluye los siguientes alias para Export-Csv
:
- Todas las plataformas:
epcsv
El Export-CSV
cmdlet convierte los objetos que se envían en una serie de cadenas CSV y los guarda en el archivo de texto especificado. Puede usar Export-CSV -IncludeTypeInformation
para guardar objetos en un archivo CSV y, a continuación, usar el Import-Csv
cmdlet para crear objetos a partir del texto del archivo CSV.
En el archivo CSV, cada objeto se representa mediante una lista separada por caracteres de los valores de propiedad del objeto. Los valores de propiedad se convierten en cadenas mediante el método ToString(). Las cadenas se representan mediante el nombre del valor de propiedad. Export-CSV -IncludeTypeInformation
no exporta los métodos del objeto .
Las cadenas CSV se generan de la siguiente manera:
- Si se usa IncludeTypeInformation , la primera cadena contiene el encabezado de información #TYPE seguido del nombre completo del tipo de objeto. Por ejemplo, #TYPE System.Diagnostics.Process.
- Si IncludeTypeInformation no se usa la primera cadena incluye los encabezados de columna. Los encabezados contienen los nombres de propiedad del primer objeto como una lista separada por caracteres.
- Las cadenas restantes contienen listas separadas por caracteres de los valores de propiedad de cada objeto.
A partir de PowerShell 6.0, el comportamiento predeterminado de Export-CSV
es no incluir la información de #TYPE en csv y NoTypeInformation está implícita. IncludeTypeInformation se puede usar para incluir la información de #TYPE y emular el comportamiento predeterminado de antes de Export-CSV
PowerShell 6.0.
Al enviar varios objetos a Export-CSV
, Export-CSV
organiza el archivo en función de las propiedades del primer objeto que envíe. Si los demás objetos no tienen una de las propiedades especificadas, el valor de propiedad de ese objeto será NULL, representado por dos comas consecutivas. Si los demás objetos tienen propiedades adicionales, esos valores de propiedad no se incluyen en el archivo.
Puede usar el Import-Csv
cmdlet para volver a crear objetos a partir de las cadenas CSV de los archivos. Los objetos resultantes son versiones CSV de los objetos originales que consisten en representaciones de cadena de los valores de propiedad y sin ningún método.
Los ConvertTo-Csv
cmdlets y ConvertFrom-Csv
convierten objetos en cadenas CSV y desde cadenas CSV. Export-CSV
es igual ConvertTo-CSV
que , salvo que guarda las cadenas CSV en un archivo.