Compartir vía


Export-Csv

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

Sintaxis

Delimiter (Es el valor predeterminado).

Export-Csv
    [[-Path] <String>]
    [[-Delimiter] <Char>]
    -InputObject <PSObject>
    [-LiteralPath <String>]
    [-Force]
    [-NoClobber]
    [-Encoding <Encoding>]
    [-Append]
    [-IncludeTypeInformation]
    [-NoTypeInformation]
    [-QuoteFields <String[]>]
    [-UseQuotes <QuoteKind>]
    [-NoHeader]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

UseCulture

Export-Csv
    [[-Path] <String>]
    -InputObject <PSObject>
    [-LiteralPath <String>]
    [-Force]
    [-NoClobber]
    [-Encoding <Encoding>]
    [-Append]
    [-UseCulture]
    [-IncludeTypeInformation]
    [-NoTypeInformation]
    [-QuoteFields <String[]>]
    [-UseQuotes <QuoteKind>]
    [-NoHeader]
    [-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 acepten archivos CSV como entrada.

No formatee los objetos antes de Export-Csv enviarlos al cmdlet. Si Export-Csv recibe objetos formateados, 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: Exportar propiedades de proceso a un archivo CSV

En este ejemplo se seleccionan objetos de proceso con propiedades específicas y se exportan 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 a la canalización al cmdlet Select-Object. Select-Object utiliza el parámetro Property para seleccionar un subconjunto de propiedades de objetos de proceso. Los objetos de proceso se envían a la canalización al cmdlet Export-Csv. 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: Exportar procesos a un archivo delimitado por comas

En este ejemplo se obtienen objetos Process y se exportan 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 a la canalización al cmdlet Export-Csv. 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: Exportar 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 a la canalización al cmdlet Export-Csv. 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 de delimitador de 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: Exportar procesos mediante el separador de lista de la referencia cultural actual

En este ejemplo se obtienen objetos Process y se exportan 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 cmdlet Get-Culture 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 a la canalización al cmdlet Export-Csv. 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: Exportar procesos con información de tipo

En este ejemplo se explica cómo incluir la información del encabezado #TYPE en un archivo CSV. El encabezado #TYPE es el predeterminado en las 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 a la canalización al cmdlet Export-Csv. 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: Exportar y anexar objetos a un archivo CSV

En este ejemplo se describe cómo exportar objetos a un archivo CSV y utilizar 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 a la canalización al cmdlet Select-Object. Select-Object utiliza el parámetro Property para especificar las propiedades DisplayName y Status . La $AppService variable almacena los objetos.

Los objetos $AppService se envían a 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 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 de formato 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 reciba una salida inesperada, solucione los problemas de 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 a 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 a la canalización al cmdlet Export-Csv. Export-Csv convierte el objeto a 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 propiedades, se reciben resultados inesperados. Format-Table envía objetos de formato de tabla por la canalización al Export-Csv 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 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 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 a la canalización al cmdlet Export-Csv. 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. El resultado muestra que el archivo no se escribe porque se deniega el acceso.

El parámetro Force se agrega al Export-Csv cmdlet para forzar la escritura de la exportación 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 Anexar

En este ejemplo se muestra cómo utilizar los parámetros Force y Append . Cuando se combinan estos parámetros, las propiedades de objetos 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 PSCustomObject con las propiedades Name y Version . Los valores se almacenan en la variable $Content. La variable $Content se envía a la canalización al cmdlet Export-Csv. 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 variable $AdditionalContent. La variable $AdditionalContent se envía a la canalización al cmdlet Export-Csv. El parámetro Append se utiliza para agregar los datos al archivo. Se produce un error en el apéndice porque hay una discrepancia en el nombre de la propiedad entre Version y Edition.

El Export-Csv parámetro Force del cmdlet se usa para forzar la escritura de la exportación en el archivo. Se descarta la propiedad Edition . 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 = 2
}

$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, al exportar 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

Utilice este parámetro para que Export-Csv se agregue la 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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Confirm

Le pide confirmación antes de ejecutar el cmdlet.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:cf

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Delimiter

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

Propiedades del parámetro

Tipo:Char
Valor predeterminado:comma (,)
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

Delimiter
Posición:1
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Encoding

Especifica la codificación para el 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 conjunto 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 se agregó
  • 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: usa 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 Byte Order Mark (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 Codificación 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.

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

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.

Propiedades del parámetro

Tipo:Encoding
Valor predeterminado:UTF8NoBOM
Valores aceptados:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Force

Este parámetro permite Export-Csv sobrescribir archivos con el atributo de solo lectura .

Cuando se combinan los 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 coincidentes.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:ITI

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-InputObject

Especifica los objetos que se van a exportar como cadenas CSV. Escriba una variable que contenga los objetos o escriba un comando o expresión que obtenga los objetos. También puede redirigir objetos a Export-Csv.

Propiedades del parámetro

Tipo:PSObject
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-LiteralPath

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

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:PSPath, LP

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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 de acceso especificada, Export-Csv sobrescribe el archivo sin previo aviso.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:NoOverwrite

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-NoHeader

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

Este parámetro se agregó en PowerShell 7.4.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-NoTypeInformation

Quita el encabezado de información #TYPE 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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:NTI

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Path

Parámetro obligatorio que especifica la ubicación en la que se va a guardar el archivo de salida CSV.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:0
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades del parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:QF

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-UseCulture

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

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

UseCulture
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades del parámetro

Tipo:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Valor predeterminado:Always
Admite caracteres comodín:False
DontShow:False
Alias:UQ

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-WhatIf

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

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:Wi

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

PSObject

Puede canalizar cualquier objeto con un adaptador del Sistema de tipos extendidos (ETS) a este cmdlet.

Salidas

None

Este cmdlet no devuelve ninguna salida.

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 las propiedades 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 el CSV y noTypeInformation está implícito. 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 organiza Export-Csvel archivo en función de las propiedades del primer objeto que envíe. Si los objetos restantes no tienen ninguna de las propiedades especificadas, el valor de propiedad de ese objeto es nulo, representado por dos comas consecutivas. Si los objetos restantes 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 constan de representaciones de cadena de los valores de propiedad y ningún método.

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