2017-09-16 1 views
2

Si j'écris un module PowerShell binaire et que j'utilise une bibliothèque .NET qui écrit sur STDOUT (Console.Out) - est-il recommandé d'utiliser pour rediriger la sortie de la console vers le flux de sortie de PowerShell?Comment rediriger la sortie de la console vers la sortie PowerShell dans un module?

je peux intercepter le Console.Out en réglant mon propre TextWriter via Console.SetOut(...) puis faire quelque chose avec elle (par exemple, je peux tamponner la sortie avec un StringWriter et d'écrire tout à un moment donné avenir, ou je peux écrire une coutume TextWriter que envoie toutes les commandes Write à WriteObject de PowerShell).

Ma question est vraiment, existe-t-il une pratique standard ou recommandée pour faire cela ou certains outils intégrés dans la bibliothèque PowerShell déjà?

+3

Je ne pense pas. Ce que vous décrivez (envelopper WriteObject() dans un TextWriter et le définir comme Console.Out) est exactement ce que j'aurais suggéré –

+0

Merci, cela semble être les conseils de l'équipe de PS aussi bien. –

Répondre

0

Si vous voulez afficher l'utilisation du pipeline WriteObject(). WriteInformation(), WriteDebug(), WriteWarning() envoie un message (chaîne) à l'hôte.

+0

Oui, c'est bien pour le contenu que je contrôle, mais le point de la question était de savoir comment rediriger la sortie de quelqu'un d'autre qui va à la sortie STDIO? Dans tous les cas, la solution a été confirmée par l'équipe PS - vous devez simplement faire la redirection vous-même. –