Sous un ancien serveur NT4.0, j'utilisais un batch contenant plusieurs
appels à d'autres batch via la commande cmd /k. Il n'y avait pas de soucis,
l'ensemble du batch père se déroulait et lançait les sous routines en /k les
unes après les autres.
Ce serveur NT a été remplacé par un serveur W2k et j'ai donc déplacé mon
batch pour qu'il continue son rôle. Par contre, je constate maintenant que
ce batch lance la 1ere sous routine en cmd /k rencontrée mais s'arrête
ensuite dans son déroulé, ne lançant plus les autres sous routines à suivre
!
Que s'est il bien passée entre ce batch sous NT et ce même batch sous 2000
??? Une idée du pkoi et de comment rectifier le tir ?
Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guillaume Bordier [MS]
Bonjour,
selon la doc en ligne, /K est l'option qui permet de laisser le cmd.exe fils en attente après l'execution d'un script. Je pense que vous auriez du utiliser /C qui sert justement à ce que le cmd.exe sorte après execution de la commande.
Cela dit, il est beaucoup plus intéressant d'utiliser la command "call <chemin du batch>" dans un batch pour en appeler un autre, cela évite de creer un nouveau process cmd.exe, c'est donc plus économique.
Cette commande permet même de faire des équivalent d'appels de fonctions au sein d'un même batch sous la forme "call :etiquette" ou :etiquette est une sous routine.
:main echo bonjour echo j'appelle ma sous routine call :sousroutine echo j'ai fini goto :eof :sousroutine echo je suis la sous routine goto :eof
Guillaume
"Dom" wrote in message news:
Bonjour à tous,
Sous un ancien serveur NT4.0, j'utilisais un batch contenant plusieurs appels à d'autres batch via la commande cmd /k. Il n'y avait pas de soucis, l'ensemble du batch père se déroulait et lançait les sous routines en /k les unes après les autres. Ce serveur NT a été remplacé par un serveur W2k et j'ai donc déplacé mon batch pour qu'il continue son rôle. Par contre, je constate maintenant que ce batch lance la 1ere sous routine en cmd /k rencontrée mais s'arrête ensuite dans son déroulé, ne lançant plus les autres sous routines à suivre ! Que s'est il bien passée entre ce batch sous NT et ce même batch sous 2000 ??? Une idée du pkoi et de comment rectifier le tir ? Merci
Dom
Bonjour,
selon la doc en ligne, /K est l'option qui permet de laisser le cmd.exe fils
en attente après l'execution d'un script. Je pense que vous auriez du
utiliser /C qui sert justement à ce que le cmd.exe sorte après execution de
la commande.
Cela dit, il est beaucoup plus intéressant d'utiliser la command "call
<chemin du batch>" dans un batch pour en appeler un autre, cela évite de
creer un nouveau process cmd.exe, c'est donc plus économique.
Cette commande permet même de faire des équivalent d'appels de fonctions au
sein d'un même batch sous la forme "call :etiquette" ou :etiquette est une
sous routine.
:main
echo bonjour
echo j'appelle ma sous routine
call :sousroutine
echo j'ai fini
goto :eof
:sousroutine
echo je suis la sous routine
goto :eof
Guillaume
"Dom" <laurentNOSPANdom@free.fr> wrote in message
news:etFcluwnEHA.3992@TK2MSFTNGP15.phx.gbl...
Bonjour à tous,
Sous un ancien serveur NT4.0, j'utilisais un batch contenant plusieurs
appels à d'autres batch via la commande cmd /k. Il n'y avait pas de
soucis,
l'ensemble du batch père se déroulait et lançait les sous routines en /k
les
unes après les autres.
Ce serveur NT a été remplacé par un serveur W2k et j'ai donc déplacé mon
batch pour qu'il continue son rôle. Par contre, je constate maintenant que
ce batch lance la 1ere sous routine en cmd /k rencontrée mais s'arrête
ensuite dans son déroulé, ne lançant plus les autres sous routines à
suivre
!
Que s'est il bien passée entre ce batch sous NT et ce même batch sous 2000
??? Une idée du pkoi et de comment rectifier le tir ?
Merci
selon la doc en ligne, /K est l'option qui permet de laisser le cmd.exe fils en attente après l'execution d'un script. Je pense que vous auriez du utiliser /C qui sert justement à ce que le cmd.exe sorte après execution de la commande.
Cela dit, il est beaucoup plus intéressant d'utiliser la command "call <chemin du batch>" dans un batch pour en appeler un autre, cela évite de creer un nouveau process cmd.exe, c'est donc plus économique.
Cette commande permet même de faire des équivalent d'appels de fonctions au sein d'un même batch sous la forme "call :etiquette" ou :etiquette est une sous routine.
:main echo bonjour echo j'appelle ma sous routine call :sousroutine echo j'ai fini goto :eof :sousroutine echo je suis la sous routine goto :eof
Guillaume
"Dom" wrote in message news:
Bonjour à tous,
Sous un ancien serveur NT4.0, j'utilisais un batch contenant plusieurs appels à d'autres batch via la commande cmd /k. Il n'y avait pas de soucis, l'ensemble du batch père se déroulait et lançait les sous routines en /k les unes après les autres. Ce serveur NT a été remplacé par un serveur W2k et j'ai donc déplacé mon batch pour qu'il continue son rôle. Par contre, je constate maintenant que ce batch lance la 1ere sous routine en cmd /k rencontrée mais s'arrête ensuite dans son déroulé, ne lançant plus les autres sous routines à suivre ! Que s'est il bien passée entre ce batch sous NT et ce même batch sous 2000 ??? Une idée du pkoi et de comment rectifier le tir ? Merci