OVH Cloud OVH Cloud

exécution de fichiers .bat

4 réponses
Avatar
LR
Salut,
Je suis en train de me prendre la tête pour exécuter un programme qui se
lance par des fichiers bat et qui ne fonctionne pas. Lorsque je double-click
sur un fichier, une fenêtre s'ouvre qui écrit des trucs et disparaît
aussitot.

J'ai donc fait démarrer/exécuter/cmd et recommencé l'opération pour voire
les trucs qui s'affichent. Le problème, c'est que le scripts lance d'autres
scripts qui s'ouvrent à nouveau dans une fenêtre et disparaissent et je ne
peux donc pas voir les éventuels messages d'erreur. Et bien entendu, si je
lance les scripts les uns après les autres en ligne de commande, la
situation n'est plus la même et problème n'apparaît pas...

Alors comment faire pour laisser ces scripts s'exécuter et voir les messages
d'erreur qui s'affichent pour détecter le problème ?

Merci d'avance
Lilian

4 réponses

Avatar
Sylvain DICI
Le 22/01/04, LR a supposé :
Salut,
Je suis en train de me prendre la tête pour exécuter un programme qui se
lance par des fichiers bat et qui ne fonctionne pas. Lorsque je double-click
sur un fichier, une fenêtre s'ouvre qui écrit des trucs et disparaît
aussitot.

J'ai donc fait démarrer/exécuter/cmd et recommencé l'opération pour voire
les trucs qui s'affichent. Le problème, c'est que le scripts lance d'autres
scripts qui s'ouvrent à nouveau dans une fenêtre et disparaissent et je ne
peux donc pas voir les éventuels messages d'erreur. Et bien entendu, si je
lance les scripts les uns après les autres en ligne de commande, la
situation n'est plus la même et problème n'apparaît pas...

Alors comment faire pour laisser ces scripts s'exécuter et voir les messages
d'erreur qui s'affichent pour détecter le problème ?

Merci d'avance
Lilian



Bonjour,
Un petit truc. Termine tes lignes de commandes dans ton fichier par un
truc comme ça :

Commande (.....) >> c:log.txt

Ce ficher contiendra les lignes que s'affiche dans la fenetre DOS.
Mais à première vue je pense que certaine de tes commandes se lancent
avant que les autres ne soient terminées.
Pour éviter cela tu peux faire (par exemple) plusieurs fichiers bat
contenant chacun une opération. 1.bat 2. bat ....
pour dans un main.bat tu fais :
call 1.bat
call 2.bat
etc...

Voila
bon courage.

--
+-----------------------------------------+
Cordialement,

Sylvain
+-----------------------------------------+
Avatar
LR
> > Salut,
> Je suis en train de me prendre la tête pour exécuter un programme qui se
> lance par des fichiers bat et qui ne fonctionne pas. Lorsque je


double-click
> sur un fichier, une fenêtre s'ouvre qui écrit des trucs et disparaît
> aussitot.
>
> J'ai donc fait démarrer/exécuter/cmd et recommencé l'opération pour


voire
> les trucs qui s'affichent. Le problème, c'est que le scripts lance


d'autres
> scripts qui s'ouvrent à nouveau dans une fenêtre et disparaissent et je


ne
> peux donc pas voir les éventuels messages d'erreur. Et bien entendu, si


je
> lance les scripts les uns après les autres en ligne de commande, la
> situation n'est plus la même et problème n'apparaît pas...
>
> Alors comment faire pour laisser ces scripts s'exécuter et voir les


messages
> d'erreur qui s'affichent pour détecter le problème ?
>
> Merci d'avance
> Lilian

Bonjour,
Un petit truc. Termine tes lignes de commandes dans ton fichier par un
truc comme ça :

Commande (.....) >> c:log.txt

Ce ficher contiendra les lignes que s'affiche dans la fenetre DOS.
Mais à première vue je pense que certaine de tes commandes se lancent
avant que les autres ne soient terminées.
Pour éviter cela tu peux faire (par exemple) plusieurs fichiers bat
contenant chacun une opération. 1.bat 2. bat ....
pour dans un main.bat tu fais :
call 1.bat
call 2.bat
etc...

Voila
bon courage.



Je suppose que ça fait partie des inconvénients de windows ;-)
Merci pour ton aide
Lilian
Avatar
Michel MARTIN
"LR" écrivait news:400fed9b$:

Salut,
Je suis en train de me prendre la tête pour exécuter un programme
qui se lance par des fichiers bat et qui ne fonctionne pas. Lorsque
je double-click sur un fichier, une fenêtre s'ouvre qui écrit des
trucs et disparaît aussitot.

J'ai donc fait démarrer/exécuter/cmd et recommencé l'opération pour
voire les trucs qui s'affichent. Le problème, c'est que le scripts
lance d'autres scripts qui s'ouvrent à nouveau dans une fenêtre et
disparaissent et je ne peux donc pas voir les éventuels messages
d'erreur. Et bien entendu, si je lance les scripts les uns après
les autres en ligne de commande, la situation n'est plus la même et
problème n'apparaît pas...

Alors comment faire pour laisser ces scripts s'exécuter et voir les
messages d'erreur qui s'affichent pour détecter le problème ?

Merci d'avance
Lilian





Bonsoir,
a la fin du script, ajoute la ligne suivante:
pause
Lorsque le script va se lancer, à la fin, une ligne apparaitra te
demandant d'appuyer sur une touche pour fermer la fenêtre.
N'appuie sur aucune touche bien sûr, avant d'avoir fini de lire le
compte-rendu.
Ainsi tu auras tout le temps de voir ce qui s'est produit.
Amicalement,
--
Michel (F11)
Informatique, électricité, jardinage, photo, bricolage
Généalogie (GAMT 2145, ACG 419)
Recherche sur 11, 34, 66, DZA, ARG, ESP)
-
http://perso.netpratique.fr/michel.martin47
Avatar
Johann Dantant
"LR" a écrit dans le message de
news:
> > Salut,
> > Je suis en train de me prendre la tête pour exécuter un programme qui


se
> > lance par des fichiers bat et qui ne fonctionne pas. Lorsque je
double-click
> > sur un fichier, une fenêtre s'ouvre qui écrit des trucs et disparaît
> > aussitot.
> >
> > J'ai donc fait démarrer/exécuter/cmd et recommencé l'opération pour
voire
> > les trucs qui s'affichent. Le problème, c'est que le scripts lance
d'autres
> > scripts qui s'ouvrent à nouveau dans une fenêtre et disparaissent et


je
ne
> > peux donc pas voir les éventuels messages d'erreur. Et bien entendu,


si
je
> > lance les scripts les uns après les autres en ligne de commande, la
> > situation n'est plus la même et problème n'apparaît pas...



Ca semble surtout indiquer que ton script principal lance les autres scripts
(au sens, demande l'exécution du script enfant à un nouveau shell puis
laisse celui-ci se débrouiller avec), alors que tu souhaiterais avoir une
exécution séquentielle dans le même shell. AMHA il suffit d'utiliser la
commande CALL à chaque ligne appelant un autre script pour avoir le
comportement séquentiel que tu attends.

> > Alors comment faire pour laisser ces scripts s'exécuter et voir les
messages
> > d'erreur qui s'affichent pour détecter le problème ?



Rajouter une PAUSE à la fin et/ou rédiriger le flux de sortie vers un
fichier log.

> > Merci d'avance
> > Lilian


[SNIP]
> Ce ficher contiendra les lignes que s'affiche dans la fenetre DOS.
> Mais à première vue je pense que certaine de tes commandes se lancent
> avant que les autres ne soient terminées.



Piqure de rappel, il n'y a pas de DOS sous Windows NT. D'ailleurs j'aurais
plutôt tendance à nommer les scripts en .CMD plutôt que .BAT, ça me rappelle
moins le DOS 3.2 sur Amstrad 1640 de mes débuts et c'est meilleur pour le
moral.

> Pour éviter cela tu peux faire (par exemple) plusieurs fichiers bat
> contenant chacun une opération. 1.bat 2. bat ....
> pour dans un main.bat tu fais :
> call 1.bat
> call 2.bat
> etc...
>
> Voila
> bon courage.

Je suppose que ça fait partie des inconvénients de windows ;-)
Merci pour ton aide
Lilian



Ca n'a rien d'un inconvénient, ça s'appelle un système multi-tâche.
Maintenant, mieux vaut lire la doc pour avoir une chance de ne pas entamer
avec lui un dialogue de sourd.

Aide toi...

-- J.D.
> Passe que moi, au départ, j'avais fait informatique comme études, pas
> NT, et je voudrais revenir à mon métier premier.
-+- BB in Guide du Linuxien pervers - Bien configurer son metier.