Je lance une commande
hg st
puis en vérifiant que c'est $LASTEXITCODE
pour vérifier la disponibilité de Mercurial dans le répertoire actuel. Je me fiche de sa sortie et je ne veux pas la montrer à mes utilisateurs.
Comment supprimer TOUTES les sorties, succès ou erreurs?
Étant donné que Mercurial n'est pas un commandlet PowerShell hg st | Out-Null
ne marche pas.
Out-Null
fonctionne très bien avec les commandes non PowerShell. Cependant, il ne supprime pas la sortie sur STDERR
, seulement sur STDOUT
. Si vous souhaitez également supprimer la sortie sur STDERR
, vous devez rediriger ce descripteur de fichier vers STDOUT
avant de rediriger la sortie vers Out-Null
:
hg st 2>&1 | Out-Null
2>
redirige toutes les sorties de STDERR
(descripteur de fichier # 2). &1
fusionne la sortie redirigée avec la sortie de STDOUT
(descripteur de fichier # 1). La sortie combinée est ensuite imprimée dans STDOUT
d'où le tuyau peut l'introduire dans STDIN
de la commande suivante de la ligne de commande (dans ce cas Out-Null
). Voir Get-Help about_Redirection
pour plus d'informations.
Une chose amusante que vous pouvez faire est de diriger la sortie vers Write-Verbose, puis vous pouvez toujours la voir si vous en avez besoin en exécutant votre script avec le commutateur -Verbose.
ping -n 2 $APP 2>&1 | Write-Verbose