Tengo un poco de confusión sobre las diversas formas de imprimir (eco) en la consola. He visto que hay varias formas de escribir resultados en la consola, como:
Write-Host "Hello world1"
"Hello World2"
Out-Host -InputObject "Hello World3"
Las tres formas se imprimirán en la consola. El del medio es de alguna manera más simple y menos detallado y más fácil de usar. También encuentro que cuando escribes una función como:
function GetValues()
{
"1"
"2"
}
Todavía devuelve dos cadenas en la tubería:
Y todavía puedo imprimir los valores:
foreach ($s in GetValues)
{
Write-Host "s: " $s
}
Lo que encontré fue que usar solo la cadena entre comillas no siempre aparece en los hosts personalizados, y que he tenido que usar Write-Host para obtener valores para imprimir en hosts personalizados.
De alguna manera encuentro esto confuso. ¿Se "Print something"
supone que es un alias Write-Host
o cuál es la intención?
fuente
El del medio escribe en la tubería.
Write-Host
yOut-Host
escribe a la consola. 'echo' es un alias para elWrite-Output
que también escribe en la tubería. La mejor manera de escribir en la consola sería usar elWrite-Host
cmdlet.Cuando un objeto se escribe en la tubería, puede ser consumido por otros comandos de la cadena. Por ejemplo:
pero esto no funcionará ya que
Write-Host
escribe en la consola, no en la tubería (Do-Something no obtendrá la cadena):fuente