Cómo exportar la salida a un archivo utilizando PowerShell

  1. Introducción al comando Out-File en PowerShell
  2. Usa el parámetro -append para agregar a un archivo en PowerShell
  3. Cambiar los datos de salida en PowerShell
Cómo exportar la salida a un archivo utilizando PowerShell

Varios lenguajes de scripting tienen funciones o métodos para permitirte exportar datos a un archivo. Incluso en los días de MS-DOS, el operador de redirección heredado (>) puede hacer esto de manera conveniente.

Este artículo discutirá cómo exportar datos de salida a un archivo, agregar datos a un archivo existente y manipular la salida utilizando PowerShell.

Introducción al comando Out-File en PowerShell

Digamos que tienes un script que devuelve una lista de todos los servicios de Windows en tu computadora. Cuando ejecutamos Get-Service, recibirás todos los objetos que podrías esperar en la consola.

Pero tal vez nos gustaría guardar esa salida en un archivo de texto. El comando Out-File es una excelente manera de hacerlo.

Podemos utilizar Out-File enviando casi cualquier cosa a través del operador de tubería. A continuación, podemos ver que el script envió la salida de Get-Service al cmdlet, que creó un archivo de texto llamado Services.txt que contiene la misma visualización en la consola.

Código de ejemplo:

Get-Service | Out-File -FilePath C:\PS\Services.txt
Get-Content C:\PS\Services.txt

Salida:

Status   Name               DisplayName

Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application Layer Gateway Service
<SNIP>

Usa el parámetro -append para agregar a un archivo en PowerShell

Por defecto, el comando Out-File sobrescribe cualquier cosa en el archivo de texto proporcionado a través del parámetro -FilePath. Sin embargo, podemos anular este comportamiento utilizando el parámetro -Append.

Quizás estemos acumulando salida de consola en un archivo y nos gustaría agregar texto a un archivo en lugar de sobrescribir. El parámetro -Append es tu mejor amigo.

Si no utilizamos el parámetro Out-File -Append, el contenido de C:\PS\File.txt se sobrescribe. Sin embargo, tan pronto como agregamos el parámetro -Append, se agrega la salida al final.

Código de ejemplo:

'firststring' | Out-File -FilePath C:\PS\File.txt
Get-Content -Path C:\PS\File.txt

'secondstring' | Out-File -FilePath C:\PS\File.txt -Append
Get-Content C:\PS\File.txt

Salida:

firststring
firststring
secondstring

Cambiar los datos de salida en PowerShell

Por defecto, este cmdlet intentará replicar lo que se muestra en la consola, pero hay algunas maneras de manipularlo. Por ejemplo, el cmdlet tiene un parámetro -NoNewLine que elimina todos los caracteres de nueva línea.

Código de ejemplo:

Get-Service | Out-File -FilePath C:\PS\Services.txt -NoNewline
Get-Content C:\PS\Services.txt

Salida:

Status   Name               DisplayName
------   ----               -----------
Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application La

O, podemos cortar el texto en cada fila en un conteo de caracteres particular con el parámetro -Width.

Código de ejemplo:

Get-Service | Out-File -FilePath C:\PS\Services.txt -Width 30
Get-Content C:\PS\Services.txt

Salida:

Status   Name               DisplayName
------   -----              -----------
Stopped  AJRouter           Al
¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell Export