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