J'ai un peu de confusion sur les différentes façons d'imprimer (écho) sur la console. J'ai vu qu'il existe plusieurs façons d'écrire la sortie sur la console, telles que:
Write-Host "Hello world1"
"Hello World2"
Out-Host -InputObject "Hello World3"
Les trois méthodes seront imprimées sur la console. Celui du milieu est en quelque sorte plus simple et moins verbeux et plus facile à utiliser. Je trouve également que lorsque vous écrivez une fonction telle que:
function GetValues()
{
"1"
"2"
}
Il renvoie toujours deux chaînes dans le pipeline:
Et je suis toujours en mesure d'imprimer les valeurs:
foreach ($s in GetValues)
{
Write-Host "s: " $s
}
Ce que j'ai trouvé, c'est que l'utilisation de la seule chaîne citée n'apparaît pas toujours sur les hôtes personnalisés et que j'ai dû utiliser Write-Host pour obtenir des valeurs à imprimer sur des hôtes personnalisés.
D'une manière ou d'une autre, je trouve cela déroutant. Est "Print something"
censé être un alias Write-Host
ou quelle est l'intention?
la source
Celui du milieu écrit dans le pipeline.
Write-Host
etOut-Host
écrit sur la console. 'echo' est un alias pourWrite-Output
lequel écrit également dans le pipeline. La meilleure façon d'écrire sur la console serait d'utiliser l'Write-Host
applet de commande.Lorsqu'un objet est écrit dans le pipeline, il peut être consommé par d'autres commandes de la chaîne. Par exemple:
mais cela ne fonctionnera pas car
Write-Host
écrit dans la console, pas dans le pipeline (Do-Something n'obtiendra pas la chaîne):la source