J'écris un programme C sous Windows, mes appels printf sont imprimés en ligne de commande et je sais que je peux rediriger toute cette sortie vers un fichier texte à l'aide de:
myProgram.exe > mylog.txt
Cependant, je souhaite également voir le résultat qui aurait été imprimé sur la console et le consigner intégralement dans un fichier texte.
Y a-t-il un moyen de faire cela? Je pensais utiliser tail pour surveiller le fichier journal.
Les fenêtres de PowerShell ont un outil permettant de le faire, nommé tee
après l'outil unix qui fait la même chose.
Alternativement, il existe des ports de la variable unix tee
pour windows:
Sous Windows, tout ce que je peux penser est de faire ceci:
myProgram.exe > mylog.txt & type mylog.txt
Ceci est basé sur l'exemple de commande dans votre question - si en fait vous vouliez ajouter la sortie à mylog.txt
, vous voudriez utiliser >>
au lieu de >
, mais type
afficherait le fichier journal entier, pas seulement ce qui avait été ajouté. .
Si vous téléchargez le fichier GnuWin32 CoreUtils , vous pouvez utiliser la méthode Unix (commande tee
) pour cela:
myProgram.exe | tee mylog.txt
Ceci écrira la sortie de myProgram.exe dans mylog.txt
mais l'affichera également sur la console en même temps. Si vous souhaitez uniquement ajouter à mylog.txt
, vous pouvez passer le paramètre -a
à tee.
J'utilise le code Visual Studio et ouvre le fichier journal à partir de là. Il maintient la vue à jour en temps quasi réel lorsque le fichier journal est modifié.
Je viens d'avoir un besoin similaire et d'utiliser Tail comme le PO le suggérait:
>C:\Temp\Commands_Log.txt (
START tail.exe -f C:\Temp\Commands_Log.txt
Some_Commands
Other_Commands
echo.
echo ALL DONE HERE!
echo.
echo IT IS NOW SAFE TO CLOSE THIS WINDOW!
)
Le fichier "> C:\Temp\Commands_Log.txt" crée le fichier journal et ajoute la sortie de toutes les commandes situées entre les parenthèses.
La première commande à l'intérieur des parenthèses devrait être de démarrer la queue, qui s'ouvrira dans une nouvelle fenêtre de commande.
Les échos à la fin sont destinés aux utilisateurs inconnus qui doivent leur faire savoir que tout est terminé.