HOWTO · PowerShell

Salida de exportación de PowerShell a archivo de texto

Este artículo muestra formas de exportar la salida de PowerShell de un comando común a un archivo de texto.

En esta página

Para guardar en un archivo de texto la salida que muestra un comando, canalízala a Out-File e indica una ruta, por ejemplo: Get-Process | Out-File -FilePath .\processes.txt. PowerShell crea el archivo si hace falta y reemplaza su contenido si ya existe en esa ruta. Usa -Append si necesitas conservar el texto existente. Los ejemplos siguientes muestran cómo guardar una salida concreta, volver a leerla y elegir entre un archivo de texto y una transcripción de sesión.

Exportar la salida de PowerShell a un archivo de texto con Out-File

Out-File recibe objetos de la canalización y escribe en un archivo su representación con formato. Esto resulta útil cuando se necesita un informe de texto legible. El ejemplo compara dos listas en memoria, guarda las diferencias y lee el archivo resultante; no depende de archivos de entrada independientes.

$reference = @('Alpha', 'Beta', 'Gamma')
$difference = @('Alpha', 'Beta', 'Delta')
$outputPath = Join-Path ([System.IO.Path]::GetTempPath()) 'compare-result.txt'

Compare-Object -ReferenceObject $reference -DifferenceObject $difference |
    Out-File -FilePath $outputPath

Get-Content -Path $outputPath

Compare-Object compara las dos colecciones de entrada. La propiedad SideIndicator señala en cuál de ellas está cada elemento diferente: <= identifica un elemento de la colección de referencia y => uno de la colección de comparación. En este caso, Gamma y Delta son los valores diferentes. Get-Content muestra el texto guardado en la ruta temporal; cambia $outputPath por una ruta completa, como C:\Reports\compare-result.txt, si quieres elegir una ubicación permanente. Este ejemplo no incluye una salida observada, así que ejecútalo en tu versión de PowerShell para ver la tabla con formato.

Out-File escribe texto con formato en lugar de conservar los objetos de la canalización. La codificación predeterminada varía según la versión de PowerShell. Si otro programa debe leer el archivo, especifica con -Encoding una codificación compatible con tu versión de PowerShell y con las expectativas de ese programa.

Anexar salida a un archivo de texto

De forma predeterminada, escribir en una ruta que ya existe reemplaza su contenido. Añade -Append para conservar el texto actual y agregar al final la nueva salida del comando. Por ejemplo, Get-Date | Out-File -FilePath .\log.txt -Append añade una línea con la fecha a log.txt; omite -Append si quieres crear un informe nuevo. Si varios comandos escriben en el mismo archivo, usa la misma codificación en cada escritura para mantener la coherencia del texto.

Elegir entre Out-File y una transcripción de PowerShell

Usa Out-File cuando quieras guardar la salida de un comando en un archivo conocido o cuando un script deba generar un informe de texto específico. Puede reemplazar el informe en cada ejecución o añadir contenido con -Append. Como escribe texto con formato, elige otro comando de exportación si el siguiente paso requiere datos estructurados en lugar de un listado legible.

Usa Start-Transcript y Stop-Transcript cuando necesites registrar una sesión interactiva más amplia, incluidos los comandos y la salida que muestran. Inicia la transcripción antes de la actividad que quieras registrar y detenla después; elige la ruta con Start-Transcript -Path. Una transcripción puede incluir más detalles de la sesión que la salida de un comando concreto: usa Out-File para guardar un resultado específico y una transcripción para documentar la sesión.