des taskkill en cascade, pour un noob - Shell/Batch - Programmation
Marsh Posté le 06-03-2005 à 20:53:31
j'améliore déjà un peu le code...
enfin je crois !
Code :
|
Marsh Posté le 06-03-2005 à 23:10:02
Salut,
Ton batch va s'arrêter à la quatrième ligne puisque le chemin avec espace n'est pas quoté.
Tu peux essayer :
"C:\Program Files\Gadwin Systems\PrintScreen\PrintScreen.exe"
Marsh Posté le 07-03-2005 à 00:07:24
merci j'en ai profité pour tout quoter, hisotre de cohérnece.
mais ça n'a pas résolu mon problème, qui xistait de toute facon même avec la version du haut : cd c:....etc.
Marsh Posté le 08-03-2005 à 01:44:06
Et si tu ajoutais un start au début de chaque exe à lancer ?
Code :
|
Marsh Posté le 08-03-2005 à 08:24:17
Merci pour la suggestion.
Maintenant le programe suis son cours jusqu'au bout,
Mais à la place de lancer les programmes en question, le fait de rajouter [b]start[/] ouvre des invites de commandes ...
Marsh Posté le 08-03-2005 à 14:36:17
C'est étrange : je viens d'essayer. Ca ouvre effectivement une invite de commande mais celle-ci se ferme aussi tôt que le dernier exécutable est lancé.
Marsh Posté le 08-03-2005 à 16:30:48
avant le coup du start, j'ai vraiment eu l'impression que mon problème était lié au "focus" , comme si le batch stoppait dès qu'il y avait un autre programme passant en avant plan... ça a un quelconque sens pour toi ?
Marsh Posté le 08-03-2005 à 17:00:52
Oui, justement en prenant compte de ça que j'ai proposé le start. Notre objectif est de regagner la main après que chaque programme est lancé.
J'ai testé avec 3 logiciels, dont un tu ne peux pas connaître (c'est spécifique de chez mon pays), mais les deux autres étaient SuperCopier et Volkey. Je n'avais qu'une seule fenêtre DOS qui s'est fermée à la fin.
Dans ton cas, le nombre de fenêtre est exactement celui de programmes à exécuter ?
Marsh Posté le 09-03-2005 à 10:33:03
désolé du retard et encore merci de s'interesser a ce problème.
voilà une capture d'écran après execution du batch, et le code du dit batch.
tout les programmes se sont bien arrétés, aucun n'a été redémarré.
Code :
|
edit : nouvelles captures plus simple et précise
Marsh Posté le 09-03-2005 à 13:23:05
essaye avec
start /nowait "blah.exe" |
Marsh Posté le 09-03-2005 à 13:32:24
pas mieux
Code :
|
Marsh Posté le 09-03-2005 à 13:34:59
c'est quoi ces c:\> ?
Marsh Posté le 09-03-2005 à 13:37:01
c'est pas le code, c'est le résultat dans la fenetre cmd.
le code :
Code :
|
edit : le batch killprocess.bat, est directement à la racine du DD C, ceci expliquant pê cela.
Marsh Posté le 09-03-2005 à 14:25:39
Une remarque : quand tu quotes le chemin, il sera interprété tel quel, alors si tu mets "C:\progra~1", l'exécutable ne sera pas trouvé.
Il faut opter soit pour le format 8.3 pour le chemin entier, soit quoter avec C:\Program Files.
Ce n'est pas forcément la cause du non fonctionnement, mais voilà..
Sinon, depuis l'invite de commande, si tu tapes :
start /?
effectivement, il n'y pas de switch /nowait (peut-être non documenté ?)
Marsh Posté le 09-03-2005 à 14:36:39
je sais plus ou j'avais lu ca !!
tanpis...
Marsh Posté le 09-03-2005 à 14:58:26
bon, après quelques test :
Code :
|
ce .bat elimine le porcessus, redémarre le programme (il a l'air de le trouver à sa place avec "progra~1" ), mais une fois le focus perdu (c'est toujours comme ça que je le comprend) l'EXIT n'est pas exécuté...
mais...merci nglechau de m'avoir rappelé qu'il existait une aide sous dos
en effet les quotes ne servent qu'a nommer la fenetres de commandes ?
le chemin est indiqué par un /D
en bref, voilà mon batch, fonctionnel :
Code :
|
edit : le /MIN ne marche que pour un seul programme (mixer), mais il ne gênes pas les autres.
Encore merci de vous être penchés sur mon soucis.
mais vous ? vous n'avez pas ce problème de systray bégayant ??
Marsh Posté le 09-03-2005 à 15:09:29
Non, les quotes ne servent pas qu'à nommer les fenêtres
Quand tu as plusieurs chemin par exemple :
C:\Program Files\Machin numero 1
C:\Program Files\Machin numero 2
C:\Program Files\Machin numero 3
etc.
Tu n'as pas forcément envie de faire des
C:\Progra~1\Machin~1
C:\Progra~1\Machin~2
C:\Progra~1\Machin~3
etc.
et de changer encore si tu ajoutes/supprimes des chemins de nom similaire.
Alors, plus simple, tu mets le chemin tel quel (nom long) par un copier/coller depuis Explorer, puis tu quotes.
Sinon, pour te répondre, si, ça m'arrive que explorer se plante et donc la disparition des icônes. Mais c'est si rarement que ça ne me dérange pas plus que ça
Enfin, c'est cool que ça marche. Pourtant le mystère reste entière : pourquoi dans mes tests je n'avais pas besoin du /D mais un simple start sans argument me suffisait
Marsh Posté le 09-03-2005 à 15:17:39
tu es sous quel os ? xp pro familial, 2000 ? 98 ?
j'ai cru comprendre que certaine fonctions dos variaient d'un os à l'autre.
peut être que le start en fait partie.
voici "mon" start /? :
Code :
|
Marsh Posté le 09-03-2005 à 15:38:28
Je suis sous XP Pro SP1 (en).
Citation : C:\>start /? |
Marsh Posté le 09-03-2005 à 15:42:24
je suis sous xp pro sp1 mais fr ?
donc tout pareil en gros...
mystère...
Marsh Posté le 19-04-2005 à 09:47:47
Voici un petit batch que j'utilise et qui fonctionne très bien.
Je pense que si tu rajoute tes lignes pour tuer les applications en debut de batch ca devrait marcher nickel
Code :
|
Marsh Posté le 21-04-2005 à 10:49:20
ReplyMarsh Posté le 29-10-2006 à 09:51:17
gregC a écrit : merci je comparerais avec mon petit dernier, voir si on gagne en rapidité. |
voici comment utiliser correctement START dans ton cas :
2 méthodes :
sans guillements : START notepad.exe
ou avec, dans quel cas le titre des la fenetre est attendue par START : START "titre fenetre bidon voir vide" "c:\windows\system32\notepad.exe"
car si tu fais START "notepad.exe"
il t'ouvre une nouvelle fenetre de commande nomée "notepad.exe" mais comme il n'y a pas de commande apres le titre, il attend des nouvelles commandes ...
j'ai mis un moment a comprendre quand j'ai été face au probleme aussi
Marsh Posté le 29-10-2006 à 11:33:45
elloco054 a écrit : voici comment utiliser correctement START dans ton cas : |
Ta première méthode ne marche qu'avec les exécutables se trouvant dans %PATH%.
La bonne réponse "universelle" est :
start /d"chemin_complet_du_dossier_hébergeant_lexécutable" exécutable.exe
A l'époque, je ne connaissais pas l'option /d
Marsh Posté le 06-03-2005 à 20:39:35
Sujet également posté sur ppc
Bonjour à tous, vous avez peut être le même problème que moi concernant le systray sous xp (pro).
Quand l'explorer plante, et qu'il redémarre dans la foulée, ou que je le tue parfois moi même pour, par exemple, effacer un dossier ou un fichier récalcitrant, il y a toute une partie des icones du systray qui ont disparues.
j'ai pris l'habitude d'ouvrir process Explorer( qui a depuis longtemps remplacé le gestionnaire des taches chez moi) et de tuer/redémarrer chaque application qui posait problème.
ça fait longtemps que je cherchait un moyen d'automatiser ou de "semi-automatiser" cette tache, voici mon batch :
vous avez en prime les applications qui posent problèmes dans mon systray.
Le problème désormais c'est que seule la premiere étape est exécutée, je pense que c'est une histoire de "focus", puisque la fenêtre cmd passe au second plan, et "gèle".
auriez vous une solution ?
quelle qu'elle soit ?
sachant que en batch ou vbs ou quoique ce soit d'autres, je suis une quiche.
à noter : la commande tskill me paraissait plus rapide, mais elle ne marche pas vraiment ?
à noter bis : j'ai télécharger pskill.exe, qui est vraiment rapide, mais j'avais le même problème, ne l'ayant pas identifé tout de suite, je suis passé a taskkill/tskill, mais je pourrais le réutiliser si vous m'apporter une aide sur ce problème de "focus".
merci de m'avoir lu.
Grégory.
ps: pas la peine de me faire remarquer que mon systray est encombré, je le sais, mais c'est une drogue !!
Message édité par gregC le 06-03-2005 à 20:43:47