Cómo exportar la salida a un archivo utilizando PowerShell
-
Introducción al comando
Out-File
en PowerShell -
Usa el parámetro
-append
para agregar a un archivo en PowerShell - Cambiar los datos de salida en 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
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn