J'ai constaté que certains des programmes que je lance laissent des processus en cours, et la fenêtre de la console ne se fermera pas avant qu'ils ne se terminent si je les exécute simplement en lançant l'exécutable.
Le programme START corrige cela, mais le vieux problème de START est toujours là. Vous ne pouvez pas vous contenter d'utiliser :
START "c:\my dir\myfile.exe"
Le premier paramètre de START est toujours le nom de la fenêtre. Si vous l'omettez, vous ouvrez simplement une console CMD avec la fenêtre nommée, quelle que soit la fenêtre que vous avez essayé de lancer. Dans l'exemple ci-dessus, j'aurais maintenant une fenêtre de console avec le titre de fenêtre “c:\my dir\myfile.exe”. Ce n'est pas ce que je voulais !
Pour omettre le nom de la fenêtre, il suffit d'utiliser une paire de guillemets doubles pour définir une chaîne vide, telle que :
START "" "c:\my dir\myfile.exe"
Enfin, terminez votre fichier batch par une commande EXIT pour vous assurer qu'il se ferme.
Cette méthode semble fonctionner de manière cohérente sous Windows 7 et 8.
Pour le dépannage, je trouve que l'ajout d'un ECHO de ce que je m'apprête à faire, puis d'un TIMEOUT de ce que je viens de faire, aide beaucoup. Par exemple :
ECHO I'm about to launch the program...
START "" "c:\my dir\myfile.exe"
TIMEOUT 5
Puisque le Timeout vous donne un compte à rebours, vous n'avez pas besoin de l'ECHO que vous êtes sur le point de retarder.