Cómo mostrar mensajes informativos en PowerShell
- Introducción a la Exportación de Salida en PowerShell
-
el Cmdlet
Write-Output
en PowerShell -
el Cmdlet
Write-Host
yWrite-Information
en PowerShell -
el Cmdlet
Write-Warning
en PowerShell -
el Cmdlet
Write-Debug
en PowerShell -
el Cmdlet
Write-Error
en PowerShell -
el Cmdlet
Write-Verbose
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.
Stop
- Muestra los mensajes de advertencia y error y luego detiene la ejecución.Inquire
- Muestra el mensaje de advertencia y solicita al usuario permiso para continuar en forma de un mensaje de confirmación.Continue
- El valor predeterminado de la variable. Muestra el mensaje de advertencia y luego lo ejecuta.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
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn