Write-Host = & gt; Exporter vers un fichier
J'ai un script avec certaines commandes comme Write-Host "Server1"
. Comment puis-je exporter dans un fichier?
Quand j'ai essayé avec script > export.txt
il ne fonctionne pas.
source d'informationauteur expirat001
Vous devez vous connecter pour publier un commentaire.
Write-host
rediriger la sortie de la console.Vous pouvez utiliser
write-output
et redirection vers un fichier (> export.txt
ou pipe àout-file export.txt
)Dans le cas extrême, quand vous avez absolument besoin de rediriger toutes les données de sortie à partir d'un script de prendre un coup d'oeil à cette applet de commande
L'utilité des différentes approches est en grande partie sera basé sur votre cas d'utilisation, bien sûr, mais...
La "bonne" façon de faire ça, je crois, si vous avez le contrôle des scripts (et c'est ce que j'ai l'habitude de le faire, même si il est vrai que je cherchais un raccourci aujourd'hui), est à "surcharge"
Write-Host
pour ainsi dire, et ensuite l'envoyer tout ce que vous avez envoyé àWrite-Host
à cette nouvelle fonction.Juste de séjour en cours de validité avec PowerShell verbes, j'ai appeler le mien
Write-Feedback
.Alors maintenant, vous avez une fonction qui opère essentiellement identique à
Write-Host
mais vous pouvez facilement contrôler où la sortie passe. Si vous avez besoin d'écrire dans un fichier, vous pouvez modifierWrite-Feedback
de sorte que tous les appels maintenant faire tout ce que vous avez besoin.Vous pouvez simplement modifier la ligne à
Write-Output
selon si vous faites quoi que ce soit d'autre dans le pipeline...Vous pouvez envoyer la sortie vers le même fichier que vous êtes à la tuyauterie, le reste de la commande, mais à l'intérieur de la
Write-Feedback
fonction, même en gardant le Write-Host:Ou si vous avez quelques valeurs aberrantes où vous ne voulez pas le
Write-Feedback
contenu pour être redirigée vers un fichier, vous pouvez ajouter un nouveau paramètre facultatif qui vous demande quoi faire avec chaqueWrite-Feedback
appel que vous avezswitch
hors de -- et envoyer un fichier,Write-Host
àWrite-Output
etc -- modification de la valeur par défaut pour ce que vous voulez généralement, et explicitementswitch
ing hors de la nouvelle paramètre où il est explicitement définie.Etc., etc. C'est juste soooo beaucoup plus facile d'acheminer tous les appels d'une chambre de compensation centralisée pour la sortie en PowerShell. Puis, quand vous ne changer d'avis, il n'est pas une énorme rechercher et remplacer-et remplacez-la tâche.
Je pense que la seule douleur serait ici si vous ne souhaitez pas envoyer de choses dans le pipeline, donc
Write-Output
est sorti, mais voulait s'assurer que le fichierWrite-Feedback
écrit était le même que celui que vous avez spécifié dans l'> export.txt
à partir de votre exemple, sans avoir à éditerWrite-Feedback
à chaque fois. Je ne sais pas si il y a un moyen facile de le faire.Mais depuis que vous aviez déjà fait un pas supprimé de votre "pipe étape", ce n'est probablement pas légitime de cas d'utilisation.
De toute façon, la ligne de fond est de surcharge
Write-Host
et faire ce que vous voulez par l'édition en un seul endroit.