HOWTO · PowerShell
PowerShell Exporter la sortie vers un fichier texte
Cet article montre comment exporter la sortie PowerShell d'une commande courante vers un fichier texte.
Sur cette page
Pour enregistrer dans un fichier texte la sortie affichée d’une commande, redirigez-la vers Out-File en indiquant un chemin, par exemple Get-Process | Out-File -FilePath .\processes.txt. PowerShell crée le fichier si nécessaire et remplace son contenu s’il existe déjà. Utilisez -Append pour conserver le texte existant. Les exemples ci-dessous montrent comment enregistrer une sortie ciblée, la relire et choisir entre un fichier texte et une transcription de session.
Exporter la sortie de PowerShell dans un fichier texte avec Out-File
Out-File reçoit les objets du pipeline et écrit leur représentation formatée dans un fichier. Cette commande est donc utile pour créer un rapport texte lisible. L’exemple compare deux listes en mémoire, enregistre les différences puis lit le fichier obtenu ; il ne nécessite aucun fichier d’entrée distinct.
$reference = @('Alpha', 'Beta', 'Gamma')
$difference = @('Alpha', 'Beta', 'Delta')
$outputPath = Join-Path ([System.IO.Path]::GetTempPath()) 'compare-result.txt'
Compare-Object -ReferenceObject $reference -DifferenceObject $difference |
Out-File -FilePath $outputPath
Get-Content -Path $outputPath
Compare-Object compare les deux collections d’entrée. Sa propriété SideIndicator indique dans quelle collection se trouve chaque élément différent : <= désigne un élément de la collection de référence et => un élément de l’autre collection. Ici, les valeurs différentes sont Gamma et Delta. Get-Content affiche le texte enregistré dans le chemin temporaire ; remplacez $outputPath par un chemin complet, par exemple C:\Reports\compare-result.txt, pour choisir un emplacement permanent. Aucun résultat observé n’est fourni pour cet exemple : exécutez-le avec votre version de PowerShell pour voir le tableau formaté.
Out-File écrit du texte formaté et ne conserve pas les objets du pipeline. L’encodage par défaut varie selon la version de PowerShell. Si un autre programme doit lire le fichier, indiquez avec -Encoding un encodage pris en charge par votre version de PowerShell et attendu par ce programme.
Ajouter une sortie à un fichier texte
Par défaut, l’écriture dans un chemin déjà existant remplace son contenu. Ajoutez -Append pour conserver le texte présent et ajouter la nouvelle sortie de commande à la fin. Par exemple, Get-Date | Out-File -FilePath .\log.txt -Append ajoute une ligne contenant la date à log.txt ; omettez -Append si vous voulez créer un rapport vierge. Si plusieurs commandes écrivent dans le même fichier, utilisez le même encodage à chaque écriture pour que le texte reste cohérent.
Choisir entre Out-File et une transcription PowerShell
Utilisez Out-File pour enregistrer la sortie d’une commande dans un fichier précis ou pour qu’un script produise un rapport texte ciblé. À chaque exécution, la commande peut remplacer le rapport ou y ajouter du contenu avec -Append. Comme elle écrit du texte formaté, choisissez une autre commande d’exportation si l’étape suivante nécessite des données structurées plutôt qu’une liste lisible.
Utilisez Start-Transcript et Stop-Transcript pour conserver une trace d’une session interactive plus étendue, y compris les commandes et leur sortie affichée. Démarrez la transcription avant l’activité à enregistrer, puis arrêtez-la ensuite ; choisissez son chemin avec Start-Transcript -Path. Une transcription peut contenir davantage de détails sur la session que la sortie d’une seule commande : utilisez Out-File pour un résultat ciblé et une transcription pour documenter une session.