AvoidUsingWriteHost

niveau de gravité : avertissement

Description

L’objectif principal de l’applet de commande Write-Host est de produire une sortie d’affichage uniquement dans l’hôte. Par exemple : impression de texte coloré ou invite l’utilisateur à entrer lorsqu’il est combiné à Read-Host. Write-Host utilise la méthode ToString() pour écrire la sortie. Le résultat particulier dépend du programme qui héberge PowerShell. La sortie de Write-Host n’est pas envoyée au pipeline. Pour générer des données dans le pipeline, utilisez Write-Output ou une sortie implicite.

L’utilisation de Write-Host dans une fonction est déconseillée, sauf si la fonction utilise le verbe Show. Le verbe Show signifie explicitement afficher des informations à l’utilisateur. Cette règle ne s’applique pas aux fonctions avec le verbe Show.

Comment

Remplacez Write-Host par Write-Output ou Write-Verbose selon que l’intention est de journaliser ou de retourner un ou plusieurs objets.

Exemple

Erreur

function Get-MeaningOfLife
{
    Write-Host 'Computing the answer to the ultimate question of life, the universe and everything'
    Write-Host 42
}

C’est bien ça

Utilisez Write-Verbose pour les messages d’information. L’utilisateur peut décider s’il faut voir le message en fournissant le paramètre détaillé .

function Get-MeaningOfLife
{
    [CmdletBinding()]Param() # makes it possible to support Verbose output

    Write-Verbose 'Computing the answer to the ultimate question of life, the universe and everything'
    Write-Output 42
}

function Show-Something
{
    Write-Host 'show something on screen'
}

Plus d’informations

d’hôte d’écriture