Rediriger la sortie de la ligne de commande Windows vers un fichier texte
L'un des moyens les plus utiles de consigner et de dépanner le comportement des commandes ou des tâches par lots que vous exécutez sous Windows consiste à rediriger la sortie vers un fichier.
Cependant, il existe plusieurs façons de rediriger les écritures de ligne de commande vers un fichier. L'option que vous choisissez dépend de la manière dont vous souhaitez afficher la sortie de votre commande.
Fonctionnement de la sortie de l'invite de commande Windows(How Windows Command Prompt Output Works)
Lorsque vous tapez une commande dans la console Windows ( invite de commande(command prompt) ), la sortie de cette commande est dirigée vers deux flux distincts.
- STDOUT : Standard Out est l'endroit où vont toutes les réponses standard des commandes. Par exemple, la réponse standard pour la commande DIR est une liste de fichiers à l'intérieur d'un répertoire.
- STDERR : L'erreur standard(Standard Error) est l'endroit où les messages d'erreur vont s'il y a un problème avec la commande. Par exemple, s'il n'y a pas de fichiers dans le répertoire, la commande DIR affichera " Fichier(File) introuvable" dans le flux d'erreur standard .(Standard Error)
Vous pouvez rediriger la sortie vers un fichier dans Windows pour ces deux flux de sortie.
Rediriger l'écriture de la sortie standard vers un nouveau fichier(Redirect Standard Output Write to New File)
Il existe deux façons de rediriger la sortie standard d'une commande vers un fichier. La première consiste à envoyer la sortie de la commande écrire dans un nouveau fichier chaque fois que vous exécutez la commande.
Pour cela, ouvrez l'invite de commande et tapez :
dir test.exe > myoutput.txt
Le caractère > indique à la console de sortir STDOUT dans le fichier avec le nom que vous avez fourni.
Lorsque vous exécutez cette commande(run this command) , vous remarquerez qu'il n'y a pas de réponse dans la fenêtre de commande, sauf l'erreur indiquant que le fichier n'existe pas.
En effet, la sortie standard de la commande a été redirigée vers un fichier appelé myoutput.txt. Le fichier existe maintenant dans le même répertoire où vous avez exécuté la commande. La sortie d'erreur standard s'affiche toujours comme d'habitude.
Remarque(Note) : veillez à changer le répertoire actif(change the active directory) pour l'invite de commande avant d'exécuter la commande. De cette façon, vous saurez où les fichiers de sortie sont stockés.
Vous pouvez afficher la sortie standard qui est allée au fichier en tapant "myoutput.txt" dans la fenêtre de commande. Cela ouvrira le fichier texte dans votre visionneuse de fichiers texte par défaut. Pour la plupart des gens, il s'agit généralement de Notepad.exe(Notepad.exe) .
La prochaine fois que vous exécuterez la même commande, le fichier de sortie précédent sera supprimé. Un nouveau fichier de sortie sera recréé avec la sortie de la dernière commande.
Rediriger les écritures de sortie standard(Standard Output) vers le même fichier(Same File)
Que faire si vous ne voulez pas écraser le même fichier ? Une autre option consiste à utiliser >> plutôt que > pour rediriger vers un fichier de sortie. Dans le cas de cet exemple, vous taperiez :
dir test.exe >> myoutput.txt
Vous verrez la même sortie (l'erreur uniquement).
Mais dans ce cas, au lieu d'écraser le fichier de sortie, cette commande ajoute la nouvelle sortie au fichier de sortie existant.
Chaque fois que vous exécutez une commande et ajoutez la sortie à un fichier, elle écrira la nouvelle sortie standard à la fin du fichier existant.
Rediriger l'erreur standard vers un fichier(Redirect Standard Error To a File)
De la même manière que vous pouvez rediriger les écritures de sortie standard vers un fichier, vous pouvez également générer le flux d'erreurs standard vers un fichier.
Pour ce faire, vous devrez ajouter 2> à la fin de la commande, suivi du fichier d'erreur de sortie que vous souhaitez créer.
Dans cet exemple, vous allez saisir la commande :
dir test.exe > myoutput.txt 2> output.err
Cela envoie le flux de sortie standard à myoutput.txt et le flux d'erreur standard à output.err. Le résultat est qu'aucun flux de sortie n'est affiché dans la fenêtre de la console.
Cependant, vous pouvez voir les messages d'erreur en tapant output.err . Cela ouvrira le fichier dans votre visionneuse de fichiers texte par défaut.
Comme vous pouvez le voir, tous les messages d'erreur de la commande sont générés dans le fichier d'erreurs. Tout(Just) comme avec la sortie standard, vous pouvez utiliser >> à la place pour ajouter l'erreur aux erreurs des commandes précédemment exécutées.
Rediriger toutes les écritures de sortie vers un même fichier(Redirect All Output Writes to a Same File)
Toutes les approches ci-dessus génèrent plusieurs fichiers. Un fichier est pour le flux de sortie standard et l'autre pour le flux d'erreur standard.
Si vous souhaitez inclure ces deux sorties dans le même fichier, vous pouvez également le faire. Pour ce faire, il vous suffit de rediriger toutes les sorties vers le même fichier à l'aide de la commande suivante.
dir test.exe 1> myoutput.txt 2>&1
Voici comment cette commande fonctionne :
- La sortie standard est dirigée vers le fichier de sortie identifié par le numéro de sortie 1.
- La sortie d'erreur standard identifiée par le numéro 2 est redirigée vers le fichier de sortie identifié par le numéro 1.
Cela ajoutera la sortie d'erreur à la fin de la sortie standard.
C'est un moyen utile de voir toutes les sorties de n'importe quelle commande dans un seul fichier.
Désactivation des flux de sortie standard ou d'erreur(Silencing Standard or Error Output Streams)
Vous pouvez également désactiver la sortie standard(Standard Output) ou l'erreur standard(Standard Error) en redirigeant la sortie vers un NUL au lieu d'un fichier.
En utilisant l'exemple ci-dessus, si vous ne voulez que la sortie standard(Standard Output) et aucune erreur standard(Standard Error) , vous pouvez utiliser la commande suivante :
dir test.exe 1> myoutput.txt 2>nul
Cela se traduira par le même fichier de sortie que le premier exemple ci-dessus où vous n'avez redirigé que la sortie standard(Standard Output) , mais avec cette commande, l'erreur ne se répercutera pas dans la console. Il ne créera pas non plus de fichier journal des erreurs.
Ceci est utile si vous ne vous souciez pas des erreurs et ne voulez pas qu'elles deviennent une nuisance.
Vous pouvez exécuter l'une des mêmes commandes de sortie ci-dessus à partir d' un fichier BAT(inside a BAT file) et la sortie de cette ligne ira dans le fichier de sortie que vous spécifiez. C'est un moyen utile de voir si des commandes dans un fichier BAT ont eu des erreurs lorsqu'elles ont essayé de s'exécuter.
Related posts
Enregistrer une liste des processus en cours d'exécution dans un fichier texte sous Windows
Comment utiliser la commande Taskkill dans Windows 10/11
Comment supprimer du texte des icônes dans la barre des tâches de Windows
Empêcher l'accès à l'invite de commande dans Windows
Supprimer les étiquettes de texte des icônes du bureau dans Windows 7/8/10
Swiss File Knife est un Command Line tool utile pour Windows
Utilisez Netstat pour voir les ports d'écoute et le PID dans Windows
Convert CSV à Excel (XLS or XLSX) en utilisant Command line dans Windows 10
Rechercher dans plusieurs fichiers texte à la fois
Comment déplacer votre profil et votre messagerie Thunderbird vers un nouvel ordinateur Windows
Fusionner deux partitions dans Windows 7/8/10
Comment utiliser la commande Ping pour résoudre les problèmes de réseau
Comment écrire ou dessiner sur un fichier PDF sous Mac et Windows
Activer le microphone, l'entrée audio et le mixage stéréo dans Windows
Nettoyer le dossier WinSxS dans Windows 7/8/10
Comment utiliser FINDSTR and Select-String Commands dans Windows 11/10
Comment redimensionner un Video en utilisant Command-line avec FFmpeg dans Windows 10
Outlook Command Line Switches sur Windows 10
Comment répertorier tous les services Windows à l'aide de PowerShell ou de la ligne de commande
Activer et désactiver les fonctionnalités Windows