OVH Cloud OVH Cloud

Bloquage de la ligne de commande

6 réponses
Avatar
rognon
Bonjour,
Je fais des programmes WinDev qui seront ex=E9cut=E9s en batch, et,
l'ex=E9cution de ceux-ci ne devront pas ce chevaucher. Par exemple le
fichier batch ex=E9cute Prog1 et imm=E9diatement apr=E8s, il ex=E9cute
Prog2. Or, Prog2 ne doit pas d=E9marrer si l'ex=E9cution de Prog1 n'est
pas termin=E9. Je croyais que cela se ferait automatiquement, mais il se
trouve que mes programmes WinDev rendent la main =E0 la ligne de
commande imm=E9diatement apr=E8s =EAtre d=E9marr=E9s.

Mes programmes seront ex=E9cut=E9s dans n'importe quel ordre. Je ne peux
donc pas appeler Prog2 =E0 partir de Prog1. Aussi, je n'ai pas de
contr=F4le sur le fichier batch qui ex=E9cute mes programmes (je suis
stagiaire dans une bo=EEte et la r=E9daction de ceux-ci ne fait pas
partie de mes t=E2ches).

Apr=E8s bien des recherches, je suis arriv=E9 =E0 une solution, mais
celle-ci me convient plus ou moins. Mes programmes WinDev pourrait
cr=E9er un fichier batch qui ex=E9cuterait =E0 son tour le programme
WinDev voulu en lui passant un certain param=E8tre pour lui dire de
d=E9marrer et non de re-cr=E9er le fichier batch.

Je n'ai pas encore trouv=E9 de meilleure solution et n'importe quelle
aide serait appr=E9ci=E9.

Merci,
Jonathan

6 réponses

Avatar
Pierre BOUSQUET
lors de la 1ere execution du batch1, ton programme peut mettre un
indicateur dans un fichier ini à 1 (fonction iniecrit)
lors de l'execution du bacth2, ce programme boucle tant qu'il trouve la
valeur 1 écrite dans le batch1
lorsque le batch1 a fini il remet la valeur à 0 dans le fichier ini et
débloque donc le batch2 (puisqu'il boucle)

est-ce clair?


avait soumis l'idée :
Bonjour,
Je fais des programmes WinDev qui seront exécutés en batch, et,
l'exécution de ceux-ci ne devront pas ce chevaucher. Par exemple le
fichier batch exécute Prog1 et immédiatement après, il exécute
Prog2. Or, Prog2 ne doit pas démarrer si l'exécution de Prog1 n'est
pas terminé. Je croyais que cela se ferait automatiquement, mais il se
trouve que mes programmes WinDev rendent la main à la ligne de
commande immédiatement après être démarrés.

Mes programmes seront exécutés dans n'importe quel ordre. Je ne peux
donc pas appeler Prog2 à partir de Prog1. Aussi, je n'ai pas de
contrôle sur le fichier batch qui exécute mes programmes (je suis
stagiaire dans une boîte et la rédaction de ceux-ci ne fait pas
partie de mes tâches).

Après bien des recherches, je suis arrivé à une solution, mais
celle-ci me convient plus ou moins. Mes programmes WinDev pourrait
créer un fichier batch qui exécuterait à son tour le programme
WinDev voulu en lui passant un certain paramètre pour lui dire de
démarrer et non de re-créer le fichier batch.

Je n'ai pas encore trouvé de meilleure solution et n'importe quelle
aide serait apprécié.

Merci,
Jonathan



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
rognon
Merci pour ta suggestion qui fonctionnerait très bien si mes
programmes WinDev étaient les seuls exécutés par le batch.
Cependant, d'autres programmes, dont je n'ai aucun contrôles, seront
lancés parmi mes programmes WinDev. Je ne peux malheureusement pas les
modifier pour qu'ils lisent des données dans un fichier INI.

Merci quand même,
Jonathan
Avatar
Pierre BOUSQUET
alors fait executer le batch par ton appli windev, elle prendra le
controle de toutes les autres, plutot que ce soir le batch qui execute
ton appli

vient de nous annoncer :
Merci pour ta suggestion qui fonctionnerait très bien si mes
programmes WinDev étaient les seuls exécutés par le batch.
Cependant, d'autres programmes, dont je n'ai aucun contrôles, seront
lancés parmi mes programmes WinDev. Je ne peux malheureusement pas les
modifier pour qu'ils lisent des données dans un fichier INI.

Merci quand même,
Jonathan



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Avatar
rognon
Le batch est exécuté par un programme d'installation pour une autre
application. Il est déjà existant et lance d'autres
script/applications qui synchronisent une base de données (mes
programmes WinDev contribuent à cette synchronisation)
Avatar
VPSoft
Bonjour,

Une piste peut être :
dans le .bat principal, au lieu de mettre le nom du prog Wd à lancer, mettre
:
call MonProg1.bat

Ce MonProg.bat lance le prog windew

L'astuce est que, si je ne m'abuse, le fait de lancer un .bat par Call fait
que la fin est attendue pour continuer.

Espérant avoir aidé

Victor

a écrit dans le message de news:

Bonjour,
Je fais des programmes WinDev qui seront exécutés en batch, et,
l'exécution de ceux-ci ne devront pas ce chevaucher. Par exemple le
fichier batch exécute Prog1 et immédiatement après, il exécute
Prog2. Or, Prog2 ne doit pas démarrer si l'exécution de Prog1 n'est
pas terminé. Je croyais que cela se ferait automatiquement, mais il se
trouve que mes programmes WinDev rendent la main à la ligne de
commande immédiatement après être démarrés.

Mes programmes seront exécutés dans n'importe quel ordre. Je ne peux
donc pas appeler Prog2 à partir de Prog1. Aussi, je n'ai pas de
contrôle sur le fichier batch qui exécute mes programmes (je suis
stagiaire dans une boîte et la rédaction de ceux-ci ne fait pas
partie de mes tâches).

Après bien des recherches, je suis arrivé à une solution, mais
celle-ci me convient plus ou moins. Mes programmes WinDev pourrait
créer un fichier batch qui exécuterait à son tour le programme
WinDev voulu en lui passant un certain paramètre pour lui dire de
démarrer et non de re-créer le fichier batch.

Je n'ai pas encore trouvé de meilleure solution et n'importe quelle
aide serait apprécié.

Merci,
Jonathan
Avatar
rognon
Oui, c'est en fait le même principe que la solution que j'avais
trouvé qui me convient plus ou moins (celle dont je parle dans mon
premier message). J'aurais aimé trouvé quelque chose de plus...
élégant. WinDev ne semble pas permettre autre chose. Je vais donc
devoir m'y contraindre.

Merci de votre aide,
Jonathan