Comment envoyer le résultat vers un fichier et garder à l'écran ?

Comment envoyer le résultat vers un fichier et garder à l'écran ? - Shell/Batch - Programmation

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 :))

Code :
  1. samp-server.bat >> samp-%date:~6,4%-%date:~3,2%-%date:~0,2%.log


 
Merci.


---------------
Mon Feedback
Reply

Marsh Posté le 28-05-2007 à 09:42:49   

Reply

Marsh Posté le 28-05-2007 à 09:48:54    

tee :o

Reply

Marsh Posté le 28-05-2007 à 10:02:35    

non, c'est soit l'un soit l'autre

Reply

Marsh Posté le 28-05-2007 à 10:50:30    

arf donc y'a VRAIMENT aucun moyen même détourné ?


---------------
Mon Feedback
Reply

Marsh 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.

Reply

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.


---------------
Mon Feedback
Reply

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


Message édité par VinZz972 le 28-05-2007 à 14:04:32

---------------
Mon Feedback
Reply

Marsh Posté le 28-05-2007 à 15:08:16    

samp-server.bat | tee samp-`date +%Y%m%d`.log

Reply

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


---------------
Mon Feedback
Reply

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

Reply

Marsh Posté le 28-05-2007 à 16:15:28   

Reply

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 ?


---------------
Mon Feedback
Reply

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 :D). 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.

Reply

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 ?


Message édité par VinZz972 le 28-05-2007 à 17:12:58

---------------
Mon Feedback
Reply

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 :(


---------------
Mon Feedback
Reply

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)


Message édité par VinZz972 le 28-05-2007 à 18:12:09

---------------
Mon Feedback
Reply

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 ...


---------------
Mon Feedback
Reply

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.


Message édité par Dumbledore le 31-05-2007 à 10:38:44
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed