web-dev-qa-db-fra.com

Écrire la sortie dans un fichier texte dans PowerShell

J'ai comparé deux fichiers en utilisant le code suivant:

Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt) 

Comment puis-je écrire la sortie de ceci dans un nouveau fichier texte? J'ai essayé d'utiliser une commande echo, mais je ne comprends pas vraiment la syntaxe.

52
bookthief

Utilisez la cmdlet Out-File

 Compare-Object ... | Out-File C:\filename.txt

Ajoutez éventuellement -Encoding utf8 à Out-File car le codage par défaut n'est pas vraiment idéal pour de nombreuses utilisations.

86
manojlds

Le moyen le plus simple est de simplement rediriger la sortie, comme suit:

Compare-Object $(Get-Content c:\user\documents\List1.txt) $(Get-Content c:\user\documents\List2.txt) > c:\user\documents\diff_output.txt

> entraînera le remplacement du fichier de sortie s'il existe déjà.
>> ajoutera un nouveau texte à la fin du fichier de sortie s'il existe déjà.

21
Matt

Une autre façon de procéder consiste à utiliser les commandes Start-Transcript et Stop-Transcript, respectivement avant et après l'exécution de la commande. Cela capturerait la session entière, y compris les commandes.

Start-Transcript

Stop-Transcript

Pour ce cas particulier, Out-File est probablement votre meilleur choix.

3
Aaron Krone