Compartir a través de


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

PSObject

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-CSVque , salvo que guarda las cadenas CSV en un archivo.