Je cours un script PowerShell à partir d'un fichier batch. Le script extrait une page Web et vérifie si le contenu de la page est la chaîne "OK".Comment générer quelque chose dans PowerShell
Le script PowerShell renvoie un niveau d'erreur au script de traitement par lots.
Le script de traitement par lots est exécuté par ScriptFTP, un programme d'automatisation FTP. Si une erreur se produit, je peux faire en sorte que ScriptFTP envoie la sortie complète de la console à l'administrateur par e-mail.
Dans le script PowerShell, je souhaite afficher la valeur renvoyée par le site Web s'il n'est pas "OK". Le message d'erreur est donc inclus dans la sortie de la console et donc dans le courrier d'état. Je ne connais pas encore PowerShell et je ne suis pas sûr de la fonction de sortie à utiliser pour cela. Je peux voir trois:
- Write-Host
- Write-Output
- écriture Erreur
Quelle serait la bonne chose à utiliser pour écrire à l'équivalent de Windows de stdout
?
Ce n'est pas vraiment ce qui se passe. C'est une expression littérale de chaîne et la seule chose dans son pipeline. C'est donc équivalent à "Hello, World!" | Out-Host'. 'Out-Host' d'autre part envoie des objets à l'hôte PowerShell pour l'affichage et son implémentation dépend de l'hôte. L'hôte de la console les envoie à la poignée de sortie standard (passant par 'Out-Default' en cours de route), en effet. PowerShell ISE les affiche dans son volet de sortie, cependant, et d'autres hôtes peuvent faire d'autres choses entièrement. – Joey
Les objets ne sont pas non plus convertis aveuglément en chaîne, mais passent par un _formatter_ qui décide quoi faire avec eux. C'est pourquoi vous voyez la sortie 'Get-ChildItem' qui se présente sous forme de tableau, par exemple, et les résultats avec de nombreuses propriétés (par exemple WMI) sont remplacés par' Format-List' à la place. – Joey