Comment envoyer le résultat vers un fichier et garder à l'écran ? - Shell/Batch - Programmation
Marsh Posté le 28-05-2007 à 10:50:30
ReplyMarsh Posté le 28-05-2007 à 12:55:40
On t'as dis "tee". Si tu installes cygwin, et en particulier les coreutils, tu aura tee.
Marsh Posté le 28-05-2007 à 13:33:40
bah pour moi tee ça m'évoquait rien comme nom donc je pouvais pas devenier
Je vais mettre cygwin donc. Merci.
Marsh Posté le 28-05-2007 à 14:03:05
Euh quelqu'un peut m'aider concernant le fonctionnement de tee ?
Sous Windows, j'avais donc réussi à créer un fichier avec la date du jour comme nom grâce à ce code :
samp-server.bat >> samp-%date:~6,4%-%date:~3,2%-%date:~0,2%.log
Comment faire la même chose avec cygwin ?
Je n'arrive même pas à lancer mon appli à partir de Cygwin
Marsh Posté le 28-05-2007 à 15:47:10
Merci.
Mais il me dit command not found quand j'essai ta commande ou alors juste un excutable
Marsh Posté le 28-05-2007 à 16:15:28
Il faut donner le chemin de la commande si elle n'est pas dans ton PATH. Si elle est dans le répertoire courant : ./samp-server.bat | tee samp-`date +%Y%m%d`.log
Marsh Posté le 28-05-2007 à 16:36:15
Génial, ça fonctionne merci !
Par contre ce que je voudrais maintenant ça serait pouvoir lancer cygwin automatiquement et lui faire lancer automatiquement un BAT avec la commande.
J'ai donc créé le bat mais ensuite comment faire en sorte que cygwin l'ouvre automatiquement ?
Marsh Posté le 28-05-2007 à 17:07:27
En fait le truc qui t'échappe c'est que tu peux très bien utiliser tee depuis ton shell normal (le cmd.exe de windows). Cygwin c'est un project, c'est pas un programme. Ce que tu appelles "cygwin" dans tes posts, c'est bash, qui est un shell au même titre que cmd.exe (enfin au même titre... Je me comprend ). Les programmes qui viennent avec cygwin, dont tee, sont indépendants du shell qui va les lancer... Tu peux lancer tee de la façon que tu veux.
Marsh Posté le 28-05-2007 à 17:10:16
ah d'accord !
Ca m'arrange ça !!
Donc j'appel tee de la même manière que sous cygwin ?
Marsh Posté le 28-05-2007 à 17:33:57
Bon, j'ai plus ou moins réussi mais on dirait que tee empêche le programme de se lancer
Marsh Posté le 28-05-2007 à 17:53:31
Après d'autres tests, j'en déduis que tee arrête l'exécution des autres programmes ...
Et quand je le fais depuis Cygwin, ça fonctionne mais je n'ai pas le déroulement du programme à l'écran (il apparît après un CRTL+C)
Marsh Posté le 31-05-2007 à 08:36:25
Personne ne peut m'aider donc ?
Au final j'en déduis que tee fait pareil que les >> pour exporter vers un fichier puisque je ne vois plus rien s'afficher à l'écran ...
Marsh Posté le 31-05-2007 à 10:36:02
tee est censé écrire tout se qu'il reçoit sur son entrée standard vers la sortie standard et simultanément vers un fichier
cat test | tee outfile <= sous Linux, ça marche
et vu que la version de tee fourni dans cygwin est la même...
Sinon, au pire, ça doit pas être compliqué à réécrire en C sous windows
Sinon, y a ptêt moyen de faire des boucles en bash ? Et tu fais un truc du genre :
pour chaque ligne du fichier
écrire ligne sur la sortie standard
écrire ligne dans le fichier de sortie
fin pour
Sinon, vu que maintenant, tu dispose de bash avec cygwin, tu lance tout ton bazard dans bash.
Marsh Posté le 28-05-2007 à 09:42:49
Bonjour à tous,
Je cherche à exécuter un programme et à en enregistrer son contenu dans un fichier.
J'ai trouvé comment exporter vers un fichier mais le problème c'est que je n'ai alors plus l'affichage de l'exécution du programme à l'écran.
Y'a-t-il un moyen d'avoir les deux ?
Voici ma commande : (Pour mon serveur GTA-SA )
Merci.
---------------
Mon Feedback