Búsqueda de sitios web

Export-Csv (Microsoft.PowerShell.Utility)


Export-Csv

Módulo:
Microsoft.PowerShell.Utility

Convierte objetos en una serie de cadenas de valores separados por caracteres (CSV) y guarda las cadenas en un archivo.

Sintaxis

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>]

Descripción

El cmdlet Export-CSV 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 utilizar el cmdlet Export-CSV para crear hojas de cálculo y compartir datos con programas que acepten archivos CSV como entrada.

No formatee los objetos antes de enviarlos al cmdlet Export-CSV. Si Export-CSV recibe objetos formateados, el archivo CSV contiene las propiedades del formato en lugar de las propiedades del objeto. Para exportar solo las propiedades seleccionadas de un objeto, utilice el cmdlet Select-Object.

Ejemplos

Ejemplo 1: exportar propiedades del proceso a un archivo CSV

Este ejemplo selecciona objetos Proceso con propiedades específicas y 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 cmdlet Get-Process obtiene los objetos Process. El parámetro Nombre filtra la salida para incluir solo los objetos del proceso WmiPrvSE. Los objetos de proceso se envían por la canalización al cmdlet Select-Object. Select-Object utiliza el parámetro Property para seleccionar un subconjunto de propiedades del objeto de proceso. Los objetos de proceso se envían por la canalización al cmdlet Export-Csv. Export-Csv convierte los objetos del proceso en una serie de cadenas CSV. El parámetro Path especifica que el archivo WmiData.csv se guarda en el directorio actual. El parámetro NoTypeInformation elimina el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El cmdlet Import-Csv usa el < parámetroPath para mostrar el archivo ubicado en el directorio actual.

Ejemplo 2: exportar procesos a un archivo delimitado por comas

Este ejemplo obtiene objetos Process y los exporta 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 cmdlet Get-Process obtiene objetos Process. Los objetos de proceso se envían por la canalización al cmdlet Export-Csv. Export-Csv convierte los objetos del proceso en una serie de cadenas CSV. El parámetro Path especifica que el archivo Processes.csv se guarda en el directorio actual. El parámetro NoTypeInformation elimina el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El cmdlet Get-Content usa el < parámetroPath para mostrar el archivo ubicado en el directorio actual.

Ejemplo 3: Exportar procesos a un archivo delimitado por punto y coma

Este ejemplo obtiene objetos Process y los exporta 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 cmdlet Get-Process obtiene objetos Process. Los objetos de proceso se envían por la canalización al cmdlet Export-Csv. Export-Csv convierte los objetos del proceso en una serie de cadenas CSV. El parámetro Path especifica que el archivo Processes.csv se guarda en el directorio actual. El parámetro Delimitador especifica un punto y coma para separar los valores de cadena. El parámetro NoTypeInformation elimina el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El cmdlet Get-Content usa el < parámetroPath para mostrar el archivo ubicado en el directorio actual.

Ejemplo 4: Exportar procesos utilizando el separador de lista de la cultura actual

Este ejemplo obtiene objetos Process y los exporta a un archivo. El delimitador es el separador de lista de la cultura 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 cmdlet Get-Culture utiliza las propiedades anidadas TextInfo y ListSeparator y muestra el separador de lista predeterminado de la cultura actual. El cmdlet Get-Process obtiene objetos Process. Los objetos de proceso se envían por la canalización al cmdlet Export-Csv. Export-Csv convierte los objetos del proceso en una serie de cadenas CSV. El parámetro Path especifica que el archivo Processes.csv se guarda en el directorio actual. El parámetro UseCulture utiliza el separador de lista predeterminado de la cultura actual como delimitador. El parámetro NoTypeInformation elimina el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El cmdlet Get-Content usa el < parámetroPath para mostrar el archivo ubicado en el directorio actual.

Ejemplo 5: Exportar procesos con información de tipo

Este ejemplo explica cómo incluir la información del encabezado #TYPE en un archivo CSV. El encabezado #TYPE es el 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 cmdlet Get-Process obtiene objetos Process. Los objetos de proceso se envían por la canalización al cmdlet Export-Csv. Export-Csv convierte los objetos del proceso en una serie de cadenas CSV. El parámetro Path especifica que el archivo Processes.csv se guarda en el directorio actual. IncludeTypeInformation incluye el encabezado de información #TYPE en la salida CSV. El cmdlet Get-Content utiliza el parámetro Path para mostrar el archivo ubicado en el directorio actual.

Ejemplo 6: exportar y agregar objetos a un archivo CSV

Este ejemplo describe cómo exportar objetos a un archivo CSV y utilizar el parámetro Agregar 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 cmdlet Get-Service obtiene objetos de servicio. El parámetro DisplayName devuelve servicios que contienen la palabra Aplicación. Los objetos de servicio se envían por la canalización al cmdlet Select-Object. Select-Object utiliza el parámetro Property para especificar las propiedades DisplayName y Status. La variable $AppService almacena los objetos.

Los objetos $AppService se envían por la canalización al cmdlet Export-Csv. Export-Csv convierte los objetos de servicio en una serie de cadenas CSV. El parámetro Path especifica que el archivo Services.csv se guarda en el directorio actual. El parámetro NoTypeInformation elimina el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El cmdlet Get-Content usa el < parámetroPath para mostrar el archivo ubicado en el directorio actual.

Los cmdlets Get-Service y Select-Object se repiten para los servicios que contienen la palabra Windows. La variable $WinService almacena los objetos de servicio. El cmdlet Export-Csv utiliza el parámetro Append para especificar que los objetos $WinService se agregan al Services.csv archivo. El cmdlet Get-Content se repite para mostrar el archivo actualizado que incluye los datos adjuntos.

Ejemplo 7: El cmdlet de formato dentro de una canalización genera resultados inesperados

Este ejemplo muestra por qué es importante no usar un cmdlet de formato dentro de una canalización. Cuando se reciba un resultado inesperado, solucione el problema 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 cmdlet Get-Date obtiene el objeto DateTime. El objeto se envía por la canalización al cmdlet Select-Object. Select-Object utiliza el parámetro Property para seleccionar un subconjunto de propiedades de objeto. El objeto se envía por la canalización al cmdlet Export-Csv. Export-Csv convierte el objeto a un formato CSV. El parámetro Path especifica que el archivo DateTime.csv se guarda en el directorio actual. El parámetro NoTypeInformation elimina el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. El cmdlet Get-Content usa el < parámetroPath para mostrar el archivo CSV ubicado en el directorio actual.

Cuando se utiliza el cmdlet Format-Table dentro de la canalización para seleccionar propiedades, se reciben resultados inesperados. Format-Table envía objetos de formato de tabla al cmdlet Export-Csv en lugar del objeto DateTime. Export-Csv convierte los objetos de formato de tabla en una serie de cadenas CSV. El cmdlet Get-Content muestra el archivo CSV que contiene los objetos de formato de tabla.

Ejemplo 8: uso del parámetro Forzar para sobrescribir archivos de solo lectura

Este ejemplo crea un archivo vacío de solo lectura y utiliza 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 cmdlet New-Item utiliza los parámetros Path y ItemType para crear el archivo ReadOnly.csv en el directorio actual. . El cmdlet Set-ItemProperty utiliza los parámetros Name y Value para cambiar la propiedad IsReadOnly del archivo a verdadero. El cmdlet Get-Process obtiene objetos Process. Los objetos de proceso se envían por la canalización al cmdlet Export-Csv. Export-Csv convierte los objetos del proceso en una serie de cadenas CSV. El parámetro Path especifica que el archivo ReadOnly.csv se guarda en el directorio actual. El parámetro NoTypeInformation elimina el encabezado de información #TYPE de la salida CSV y no es necesario en PowerShell 6. La salida muestra que el archivo no se escribe porque se deniega el acceso.

El parámetro Force se agrega al cmdlet Export-Csv para forzar la exportación para escribir en el archivo. El cmdlet Get-Content utiliza el parámetro Path para mostrar el archivo ubicado en el directorio actual.

Ejemplo 9: uso del parámetro Forzar con Agregar

Este ejemplo muestra cómo utilizar los parámetros Forzar y Agregar. Cuando se combinan estos parámetros, las propiedades de objetos que no coinciden 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 Nombre y Versión. Los valores se almacenan en la variable $Content. La variable $Content se envía por la canalización al cmdlet Export-Csv. Export-Csv utiliza el parámetro Path y guarda el archivo ParmFile.csv en el directorio actual. El parámetro NoTypeInformation elimina 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 Nombre y Edición. Los valores se almacenan en la variable $AdditionalContent. La variable $AdditionalContent se envía por la canalización al cmdlet Export-Csv. El parámetro Append se utiliza para agregar los datos al archivo. La adición falla porque el nombre de propiedad no coincide entre Versión y Edición.

El parámetro Force del cmdlet Export-Csv se utiliza para forzar la exportación para escribir en el archivo. La propiedad Edición se descarta. El cmdlet Import-Csv utiliza el parámetro Path para mostrar el archivo ubicado en el directorio actual.

Ejemplo 10: Exportar a CSV con comillas en dos columnas

Este ejemplo 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

Este ejemplo 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: convertir tablas hash a CSV

En PowerShell 7.2 y versiones posteriores, cuando exporta tablas hash a CSV, las claves de la primera tabla hash se serializan y se utilizan 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: convertir tablas hash a CSV con propiedades adicionales

En PowerShell 7.2 y versiones posteriores, cuando exporta una tabla hash que tiene propiedades adicionales agregadas con Add-Member o Select-Object, las propiedades adicionales también se agregan como un encabezado en el CSV. archivo.

$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 luego exportada a CSV. Puede ver que ExtraProp ahora 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

Utilice este parámetro para que Export-CSV agregue salida CSV al final del archivo especificado. Sin este parámetro, Export-CSV reemplaza el contenido del archivo sin previo aviso.

Este parámetro se introdujo en Windows PowerShell 3.0.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Confirm

Le solicita confirmación antes de ejecutar el cmdlet.

Tipo :

SwitchParameter

Alias:

cf

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Delimiter

Especifica un delimitador para separar los valores de propiedad. El valor predeterminado es una coma (,). Introduzca un carácter, como dos puntos (:). Para especificar un punto y coma (;), escríbalo entre comillas.

Tipo :

Carbonizarse

Posición:

1

Valor predeterminado:

coma (,)

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

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: utiliza la codificación para el juego de caracteres ASCII (7 bits).
  • ansi: utiliza la codificación para la página de códigos ANSI de la cultura actual. Esta opción fue agregada
  • bigendianunicode: codifica en formato UTF-16 utilizando el orden de bytes big-endian.
  • bigendianutf32: codifica en formato UTF-32 utilizando el orden de bytes big-endian.
  • oem: utiliza la codificación predeterminada para MS-DOS y programas de consola.
  • unicode: codifica en formato UTF-16 utilizando 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 ID 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.

A partir de PowerShell 7.4, puede usar el valor Ansi para el parámetro Encoding para pasar el ID numérico de la página de códigos ANSI de la cultura actual sin tener que especificarlo manualmente.

Nota

Ya no se recomienda el uso de UTF-7*. A partir de PowerShell 7.1, se escribe una advertencia si especifica utf7 para el parámetro Encoding.

Tipo :

Codificación

Valores aceptados:

ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32

Posición:

Nombrado

Valor predeterminado:

UTF8NoBOM

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Force

Este parámetro permite que Export-Csv sobrescriba archivos con el atributo Solo lectura.

Cuando se combinan los parámetros Force y Append, los objetos que contienen propiedades que no coinciden se pueden escribir en un archivo CSV. Sólo las propiedades que coinciden se escriben en el archivo. Las propiedades no coincidentes se descartan.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-IncludeTypeInformation

Cuando se utiliza este parámetro, la primera línea de la salida CSV contiene #TYPE seguido del nombre completo del tipo de objeto. Por ejemplo, #TYPE Sistema.Diagnóstico.Proceso.

Este parámetro se introdujo en PowerShell 6.0.

Tipo :

SwitchParameter

Alias:

ITI

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-InputObject

Especifica los objetos que se exportarán como cadenas CSV. Ingrese una variable que contenga los objetos o escriba un comando o expresión que obtenga los objetos. También puede canalizar objetos a Export-CSV.

Tipo :

PSObjeto

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

True

Aceptar entrada de canalización:

True

Aceptar caracteres comodín:

False

-LiteralPath

Especifica la ruta al archivo de salida CSV. A diferencia de Path, el valor del parámetro LiteralPath se utiliza exactamente tal como se escribe. Ningún carácter se interpreta como comodín. Si la ruta incluye caracteres de escape, utilice comillas simples. Las comillas simples le indican a PowerShell que no interprete ningún carácter como secuencia de escape.

Tipo :

String

Alias:

PSPath, LP

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-NoClobber

Utilice este parámetro para que Export-CSV no sobrescriba un archivo existente. De forma predeterminada, si el archivo existe en la ruta especificada, Export-CSV sobrescribe el archivo sin previo aviso.

Tipo :

SwitchParameter

Alias:

NoOverwrite

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-NoHeader

Cuando se usa este parámetro, el cmdlet no escribe una fila de encabezado que contenga los nombres de las columnas en la salida.

Este parámetro se agregó en PowerShell 7.4.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-NoTypeInformation

Elimina el encabezado de información #TYPE de la salida. Este parámetro pasó a ser el predeterminado en PowerShell 6.0 y se incluye por motivos de compatibilidad con versiones anteriores.

Tipo :

SwitchParameter

Alias:

NTI

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Path

Un parámetro obligatorio que especifica la ubicación para guardar el archivo de salida CSV.

Tipo :

String

Posición:

0

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-QuoteFields

Especifica los nombres de las columnas que deben citarse. Cuando se utiliza este parámetro, solo se citan las columnas especificadas. Este parámetro se agregó en PowerShell 7.0.

Tipo :

String[]

Alias:

QF

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-UseCulture

Utiliza el separador de lista para la cultura actual como delimitador de elementos. Para encontrar el separador de lista para una cultura, use el siguiente comando: (Get-Culture).TextInfo.ListSeparator.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-UseQuotes

Especifica cuándo se utilizan comillas en los archivos CSV. Los valores posibles son:

  • Nunca - no cites nada
  • Siempre: citar todo (comportamiento predeterminado)
  • Según sea necesario: solo campos de comillas que contengan un carácter delimitador, comillas dobles o caracteres de nueva línea

Este parámetro se agregó en PowerShell 7.0.

Tipo :

Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind

Alias:

UQ

Posición:

Nombrado

Valor predeterminado:

Siempre

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-WhatIf

Impide que el cmdlet se procese o realice cambios. El resultado muestra lo que sucedería si se ejecutara el cmdlet.

Tipo :

SwitchParameter

Alias:

wi

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

Entradas

PSObjeto

Puede canalizar cualquier objeto con un adaptador de sistema de tipo extendido (ETS) a este cmdlet.

Salidas

Ninguno

Este cmdlet no devuelve ningún resultado.

Notas

PowerShell incluye los siguientes alias para Export-Csv:

  • Todas las plataformas:

      epcsv

El cmdlet Export-CSV convierte los objetos que envía en una serie de cadenas CSV y las guarda en el archivo de texto especificado. Puede usar Export-CSV -IncludeTypeInformation para guardar objetos en un archivo CSV y luego usar el cmdlet Import-Csv para crear objetos a partir del texto del archivo CSV.

En el archivo CSV, cada objeto está representado por una lista separada por caracteres de los valores de propiedad del objeto. Los valores de las propiedades se convierten en cadenas utilizando el método ToString(). Las cadenas están representadas por el nombre del valor de la propiedad. Export-CSV -IncludeTypeInformation no exporta los métodos del objeto.

Las cadenas CSV se generan de la siguiente manera:

  • Si se utiliza IncludeTypeInformation, la primera cadena contiene el encabezado de información #TYPE seguido del nombre completo del tipo de objeto. Por ejemplo, #TYPE Sistema.Diagnóstico.Proceso.
  • Si no se utiliza IncludeTypeInformation, la primera cadena incluye los encabezados de las columnas. Los encabezados contienen los nombres de las propiedades 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 #TYPE en el CSV y NoTypeInformation está implícito. IncludeTypeInformation se puede utilizar para incluir la información #TYPE y emular el comportamiento predeterminado de Export-CSV antes de PowerShell 6.0.

Cuando envía varios objetos a Export-CSV, Export-CSV organiza el archivo según las propiedades del primer objeto que envía. Si los objetos restantes no tienen una de las propiedades especificadas, el valor de la propiedad de ese objeto es nulo, como lo representan dos comas consecutivas. Si los objetos restantes tienen propiedades adicionales, esos valores de propiedad no se incluyen en el archivo.

Puede utilizar el cmdlet Import-Csv para recrear objetos a partir de las cadenas CSV de los archivos. Los objetos resultantes son versiones CSV de los objetos originales que constan de representaciones de cadenas de los valores de propiedad y ningún método.

Los cmdlets ConvertTo-Csv y ConvertFrom-Csv convierten objetos en cadenas CSV y desde cadenas CSV. Export-CSV es lo mismo que ConvertTo-CSV, excepto que guarda las cadenas CSV en un archivo.

Artículos relacionados