1.1K
PowerShell tiene varias formas de escribir datos y mensajes en la consola. Puede utilizar Write-Host, Write-Output, Write-Information o [console]::Comandos WriteLine. ¿Cómo usamos estos comandos para enviar datos a la consola de PowerShell y cuál es la diferencia entre ellos?
Abra la consola de PowerShell y ejecute los siguientes comandos uno por uno:
write-host "testing console output" write-output "testing console output"
A primera vista, ambos comandos se usan para imprimir cadenas de texto en la consola de PowerShell. Aunque Write-Output y Write-Host parecían lograr el mismo resultado, en realidad funcionan de manera bastante diferente.
- Host de escritura escribe una cadena de texto para consolarse a sí mismo;
- Objeto de escritura envía el texto como un objeto de PowerShell al siguiente comando en la canalización.
Un análogo del comando echo del intérprete de línea de comandos (cmd.exe) es el cmdlet Write-Host. Simplemente pase lo que quiera que se muestre en la consola como el argumento Write-Host.
La peculiaridad de Write-Host es que es el único cmdlet que permite cambiar manualmente los colores de fondo y primer plano en la consola de PowerShell mediante -Color de fondo y -Color de primer plano palabras clave Están disponibles los siguientes valores de color:
- Negro
- Azul oscuro
- Verde oscuro
- cian oscuro
- Rojo oscuro
- Magenta oscuro
- Amarillo oscuro
- Gris
- Gris oscuro
- Azul
- Verde
- cian
- Rojo
- Magenta
- Amarillo
- Blanco
Por ejemplo:
Write-Host "Dark red background with White text" -BackgroundColor DarkRed -ForegroundColor White
Con el -NoNuevalínea opción, puede evitar que se agregue un espacio o un carácter de nueva línea después de la salida Write-Host.
Write-Host "first line with no new line option" -NoNewline; Write-Host "second string"
El -Separador La opción le permite agregar una cadena o carácter separador para insertar entre los objetos impresos en la consola.
Write-Host (2,4,6,8,10,12) -Separator ", -> "
El cmdlet Write-Output envía el objeto especificado por la canalización al siguiente comando. Si el comando es el último comando en la canalización, el objeto se muestra en la consola.
Nota. En PowerShell, el comando echo es un alias para Write-Output.
Tenga en cuenta que una línea con espacios se trata como varios valores separados y se muestra línea por línea. Si pone los datos entre comillas, se interpretarán como un único valor de cadena.
Este cmdlet se usa comúnmente en secuencias de comandos para mostrar cadenas y otros objetos en la consola. Sin embargo, dado que el comportamiento predeterminado es mostrar objetos al final de la canalización, generalmente no es necesario usar el cmdlet. Por ejemplo, los resultados de los siguientes dos comandos serán equivalentes:
Get-Process | Write-Output
y
Get-Process
Así, la principal característica de la Salida de escritura cmdlet es que, en la mayoría de los casos, este comando no necesita especificarse explícitamente en sus scripts.
Puede suprimir Write-Output redirigiendo a $null:
Write-Output 'This line will not be shown' > $null
o
Write-Output 'This line will not be shown' | Out-Null
Los cmdlets de PowerShell se utilizan con fines de depuración o para mostrar el resultado de cualquier comando o secuencia de comandos en la consola del usuario.