Cómo mostrar mensajes informativos en PowerShell

  1. Introducción a la Exportación de Salida en PowerShell
  2. el Cmdlet Write-Output en PowerShell
  3. el Cmdlet Write-Host y Write-Information en PowerShell
  4. el Cmdlet Write-Warning en PowerShell
  5. el Cmdlet Write-Debug en PowerShell
  6. el Cmdlet Write-Error en PowerShell
  7. el Cmdlet Write-Verbose en PowerShell
Cómo mostrar mensajes informativos en PowerShell

Escribir mensajes informativos en la consola es un proceso esencial en cualquier lenguaje, ya que le brinda retroalimentación correcta al usuario. Sin embargo, hay múltiples formas de imprimir mensajes en Windows PowerShell.

Este artículo diferenciará los múltiples comandos de escritura, como escribir mensajes informativos, de advertencia y de error, y proporcionará situaciones sobre cuándo y dónde podemos usarlos.

Introducción a la Exportación de Salida en PowerShell

Antes de comenzar a discutir los diferentes comandos de escritura, vale la pena señalar que PowerShell puede generar un mensaje encerrando una sola línea con comillas simples ('') o comillas dobles ("").

Código de Ejemplo:

"Hello World!"
'Hello World'

Salida:

Hello World!
Hello World

Esta sintaxis es posible en PowerShell gracias a la expresión literal de cadena y la canalización de cadenas oculta. Los varios fragmentos de código anteriores son equivalentes al siguiente código de ejemplo.

Código de Ejemplo:

"Hello World!" | Out-Host

El comando Out-Host envía los objetos precedidos para mostrarse en la consola.

el Cmdlet Write-Output en PowerShell

El primer método de impresión es el comando Write-Output. Este cmdlet es la sintaxis más básica de todos los métodos de impresión dentro del entorno de scripting de PowerShell.

Podemos equipararlo a muchos métodos de impresión básicos de diferentes lenguajes, como print y stdout.

Código de Ejemplo:

Write-Output "Hello World!"

Salida:

Hello World!

el Cmdlet Write-Host y Write-Information en PowerShell

El comando Write-Host es otro método de impresión similar al anterior, Write-Output.

La única diferencia de este comando antes de que se actualizara en PowerShell 5.0 es que el método solo puede generar mensajes con diferentes colores usando los parámetros -BackgroundColor y -ForegroundColor.

Como se mencionó, a partir de Windows PowerShell 5.0, Write-Host ahora es un envoltorio para Write-Information. Esto nos permite usar Write-Host para emitir salida al flujo de información.

Este cmdlet habilita la supresión o captura de datos escritos utilizando el comando Write-Host mientras se preserva la compatibilidad hacia atrás.

La variable de preferencia $InformationPreference y el parámetro estándar -InformationAction no afectan los mensajes de Write-Host. La excepción a esta regla es
-InformationAction Ignore, que suprime efectivamente la salida de Write-Host.

Escribir en el flujo de información usando Write-Host o Write-information no creará problemas con su cadena de salida.

También podemos manipular la visibilidad del flujo de información si usamos el parámetro -InformationAction, siempre que también vinculamos el valor del parámetro dado a las declaraciones de Write-Host en la función.

Por ejemplo, el siguiente ejemplo deshabilitará el flujo de información por defecto, a menos que se solicite lo contrario a través del parámetro -InformationAction.

Write-Host 'This is a test message' -InformationAction $InformationPreference -ForegroundColor Green

el Cmdlet Write-Warning en PowerShell

El comando Write-Warning escribe un mensaje de advertencia en el host de Windows PowerShell. La respuesta al evento de advertencia depende del valor de la variable $WarningPreference del usuario y del parámetro estándar -WarningAction.

Los valores válidos de la variable $WarningPreference son los siguientes.

  1. Stop - Muestra los mensajes de advertencia y error y luego detiene la ejecución.
  2. Inquire - Muestra el mensaje de advertencia y solicita al usuario permiso para continuar en forma de un mensaje de confirmación.
  3. Continue - El valor predeterminado de la variable. Muestra el mensaje de advertencia y luego lo ejecuta.
  4. SilentlyContinue - No muestra el mensaje de advertencia. Continúa ejecutando.

Código de Ejemplo:

Write-Warning "This is only a test warning notification." -WarningAction Continue

el Cmdlet Write-Debug en PowerShell

El comando Write-Debug es también otro método para imprimir en PowerShell. Sin embargo, esto se utiliza más en el desarrollo para imprimir mensajes de depuración en el entorno de scripting.

Los mensajes de depuración no se muestran de forma predeterminada, pero se pueden cambiar utilizando la variable $debugPreference.

Código de Ejemplo:

Write-Debug "Error on line 1. Please investigate."
$debugPreference = "Continue"
Write-Debug "Error on line 5. Please investigate."

Salida:

DEBUG: Error on line 5. Please investigate.

el Cmdlet Write-Error en PowerShell

El comando Write-Error genera un error no terminante. Por defecto, los errores se envían en el flujo de error al programa host de PowerShell para ser exportados junto con la salida.

Para generar un error no terminante, ingrese una cadena de mensaje de error, un objeto ErrorRecord o un objeto Exception. Luego, use los diferentes parámetros de Write-Error para completar el registro de error que exportaremos.

Los errores no terminantes escribirán un error en el flujo de error, pero no detendrán el procesamiento de comandos. Por ejemplo, si se lanza un error no terminante en un elemento de un conjunto de elementos de entrada, el cmdlet continuará procesando los otros elementos.

Código de Ejemplo:

Write-Error "Invalid object" -ErrorId B1 -TargetObject $_

Salida:

Write-Error "Invalid object" -ErrorId B1 -TargetObject $_ : Invalid object
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : B1

el Cmdlet Write-Verbose en PowerShell

El comando Write-Verbose escribe texto en el flujo de mensajes verbosos en PowerShell.

Al igual que el comando Write-Debug, el mensaje verbal no se muestra de forma predeterminada, pero se puede mostrar utilizando la variable $VerbosePreference o agregando el parámetro de opción -Verbose.

Código de Ejemplo:

Write-Verbose -Message "This will not be displayed."
Write-Verbose -Message "This will be displayed" -Verbose

Salida:

VERBOSE: This will be displayed
¿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