web-dev-qa-db-fra.com

Supprimer la sortie de la console dans PowerShell

J'ai un appel à GPG de la manière suivante dans un script PowerShell:

$key = & 'gpg' --decrypt "secret.gpg" --quiet --no-verbose > $null

Je ne souhaite pas que les sorties de GPG soient visibles sur la console principale lorsque j'exécute le script.

En raison de ma noblesse dans PowerShell, je ne sais pas comment faire cela. J'ai cherché Stack Overflow et cherché un moyen de le faire sur Google, j'ai trouvé beaucoup de façons de le faire, mais cela n'a pas fonctionné.

Le "> $ null" par exemple n'a pas d'effet. J'ai trouvé le --quiet --no-verbose options pour que GPG mette moins de sorties dans la console, mais ce n’est pas tout à fait silencieux, et je suis sûr qu’il existe également une solution dans PowerShell.

46
Dominik Antal

Essayez de rediriger la sortie comme ceci:

$key = & 'gpg' --decrypt "secret.gpg" --quiet --no-verbose >$null 2>&1
29
Dave Sexton

Essayez de rediriger la sortie vers Out-Null . Ainsi,

$key = & 'gpg' --decrypt "secret.gpg" --quiet --no-verbose | out-null

78
vonPryz

Il s'agit d'un doublon de cette question , avec une réponse contenant une mesure temporelle des différentes méthodes.

Conclusion: utilisez [void] ou > $null.

4
Dirk