Salida de exportación de PowerShell a archivo de texto

Migel Hewage Nimesha 1 abril 2022
Salida de exportación de PowerShell a archivo de texto

PowerShell es una de las herramientas más importantes, que consiste en una CLI (Command Line Interface). Consiste en un lenguaje de secuencias de comandos que se puede utilizar en funciones de automatización y un marco de gestión de configuración que se puede utilizar en un entorno de CI/CD. PowerShell es compatible con los sistemas operativos Windows, Linux y macOS.

Los comandos de PowerShell proporcionan su salida estándar como una línea de impresión en la interfaz de línea de comandos. Podemos usar varios comandos en PowerShell para obtener resultados en diferentes perspectivas.

Uno de los requisitos clave de la mayoría de los usuarios es obtener el resultado de la interfaz de línea de comandos de PowerShell. Eso es obtener la salida en un archivo de texto. Podemos usar ciertos comandos de PowerShell para lograr este propósito.

Exportar salida a un archivo de texto en PowerShell

Primero consideraremos un comando de ejemplo que generalmente da una salida estándar. El comando que vamos a utilizar aquí sería Compare-Object.

Compare-Object es uno de los comandos básicos de PowerShell, que permite a los usuarios comparar dos archivos. Luego, el programa generaría los cambios encontrados en los dos documentos.

Además, apunta al archivo donde se encuentra la línea única a través del Indicador lateral. Este comando se usa comúnmente para realizar un seguimiento de los cambios en un archivo en diferentes versiones de sí mismo.

Los dos archivos de entrada utilizados para comparar se muestran a continuación con todo su contenido.

Exportar salida a un archivo de texto en PowerShell

Compare-Object $(Get-Content .\TestDoc1.txt) $(Get-Content .\TestDoc2.txt)

Los dos archivos utilizados en este comando tienen datos ficticios de caracteres alfabéticos, con varias líneas únicas en cada archivo. La salida del código anterior es así.

InputObject SideIndicator
----------- -------------
JJ          =>
KK          =>
LL          =>
MM          =>
NN          =>
DD          <=
EE          <=
FF          <=
GG          <=

Nuestro tema es discutir cómo obtener el resultado anterior en un archivo de texto externo.

Hay varios comandos para hacer eso. Algunos son considerados los mejores y los más fáciles.

Use el comando Out-File para exportar la salida de un comando común a un archivo de texto en PowerShell

Out-File es un comando que envía la salida de un comando de PowerShell a un archivo. Por ejemplo, podemos usar el comando que elegimos arriba como se muestra a continuación.

Compare-Object $(Get-Content .\TestDoc1.txt) $(Get-Content .\TestDoc2.txt) | Out-File .\TestDoc3.txt

Luego, la salida no se escribe en la interfaz de línea de comandos de PowerShell, sino que se imprime directamente en el archivo de salida proporcionado en la ruta del comando. El siguiente resultado es lo que se imprime en el TestDoc3.

InputObject SideIndicator
----------- -------------
JJ          =>           
KK          =>           
LL          =>           
MM          =>           
NN          =>           
DD          <=           
EE          <=           
FF          <=           
GG          <=           

Además, la imagen a continuación muestra el mismo resultado que el archivo de salida.

Exportar salida a un archivo de texto en PowerShell - 2

Se pueden utilizar otras opciones, como Start-Transcript y Stop-Transcript. Podemos usarlos para crear un script de cada comando que se ejecute en el medio.

Antes de iniciar los comandos, puede ingresar Start-Transcript, y al final de los comandos que desea incluir en el script, puede ingresar Stop-Transcript.

Sin embargo, esta no es la mejor solución para obtener la salida de un comando en un archivo de texto separado, ya que un proceso de secuencias de comandos registra todo lo que sucede en PowerShell.

Por lo tanto, podemos concluir que out-file es la mejor solución para lograr la tarea en cuestión. La salida se recibió con éxito como se mencionó y se muestra arriba.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.