J'écris un programme C dans Windows, mes appels printf impriment sur la ligne de commande, et je sais que je peux rediriger toute cette sortie vers un fichier texte en utilisant:
myProgram.exe > mylog.txt
Cependant, je souhaite également voir la sortie qui aurait été imprimée sur la console ainsi que la consigner dans un fichier texte.
Y a-t-il un moyen de faire cela? Je pensais utiliser tail pour surveiller le fichier journal.
windows
command-line
stdout
user79397
la source
la source
Réponses:
Les fenêtres PowerShell ont un outil qui peut le faire, nommé d'
tee
après l'outil Unix qui fait de même.Alternativement, il existe des ports d'unix
tee
pour Windows:la source
Sous Windows, tout ce que je peux penser, c'est de faire ceci:
Ceci est basé sur l'exemple de commande dans votre question - si en fait vous vouliez ajouter la sortie à
mylog.txt
alors vous voudriez utiliser à la>>
place de>
, maistype
imprimeriez le fichier journal entier, pas seulement ce qui avait été ajouté.Si vous téléchargez GnuWin32 CoreUtils , vous pouvez utiliser la méthode Unix (
tee
commande) pour ce faire:Cela va écrire la sortie de myProgram.exe
mylog.txt
mais aussi l'afficher sur la console en même temps. Si vous souhaitez uniquement ajouter à,mylog.txt
vous pouvez passer le-a
paramètre à tee.la source
J'utilise Visual Studio Code et j'ouvre le fichier journal à partir de là, il maintient la vue à jour presque en temps réel lorsque le fichier journal change
la source
J'ai juste eu un besoin similaire et j'ai utilisé Tail comme l'OP l'a suggéré:
Le "> C: \ Temp \ Commands_Log.txt" crée le fichier journal et ajoute la sortie de toutes les commandes situées à l'intérieur des (parenthèses).
La première commande à l'intérieur des parenthèses devrait être de démarrer Tail, qui s'ouvrira dans une nouvelle fenêtre de commande.
L'écho à la fin est destiné aux utilisateurs non familiers pour leur faire savoir quand tout est terminé.
la source