Estou tendo um pouco de confusão sobre as várias maneiras de imprimir (eco) no console. Vi que existem várias maneiras de gravar a saída no console, como:
Write-Host "Hello world1"
"Hello World2"
Out-Host -InputObject "Hello World3"
Todas as três maneiras serão impressas no console. A do meio é de alguma forma mais simples, menos detalhada e mais fácil de usar. Também acho que quando você escreve uma função como:
function GetValues()
{
"1"
"2"
}
Ele ainda retorna duas strings no pipeline:
E ainda sou capaz de imprimir os valores:
foreach ($s in GetValues)
{
Write-Host "s: " $s
}
O que eu descobri foi que o uso apenas da cadeia de caracteres citada nem sempre aparece em hosts personalizados e que eu tive que usar o Write-Host para obter valores para imprimir em hosts personalizados.
De alguma forma, acho isso confuso. É "Print something"
suposto ser um apelido para Write-Host
ou qual é a intenção?
fonte
O do meio escreve no pipeline.
Write-Host
eOut-Host
grava no console. 'eco' é um alias para oWrite-Output
qual grava também no pipeline. A melhor maneira de gravar no console seria usando oWrite-Host
cmdlet.Quando um objeto é gravado no pipeline, ele pode ser consumido por outros comandos da cadeia. Por exemplo:
mas isso não funcionará desde que seja
Write-Host
gravado no console, não no pipeline (Do-Something não receberá a sequência):fonte