Comment démarrer une application sans attendre dans un fichier batch?

156

Existe-t-il un moyen d'exécuter une application sans attendre dans un fichier batch? J'ai essayé la startcommande mais elle crée juste une nouvelle fenêtre de commande.

Mark Attwood
la source
3
Remarque - pour ceux qui font des choses compliquées avec les scripts batch Windows: si un processus C est start-ed dans un call-ed .bat-file B (qui a été appelé à son tour à partir de A ), et C reste ouvert après la fin de B (disons C est un service ou quelque chose qui attend juste que les choses se passent et n'a pas de point de terminaison fixe jusqu'à ce que le système d'exploitation s'arrête), le parent A qui contenait le callpeut ne pas être en mesure de se terminer comme prévu à moins que le processus C ne se ferme, ou ne soit tué. Voici un exemple simple: codepad.org/KLglXDnZ
SeldomNeedy

Réponses:

306

Je fais une supposition ici, mais votre startinvocation ressemble probablement à ceci:

start "\Foo\Bar\Path with spaces in it\program.exe"

Cela ouvrira une nouvelle fenêtre de console, en utilisant «\ Foo \ Bar \ Path avec des espaces \ program.exe» comme titre.

Si vous utilisez startavec quelque chose qui est (ou doit être) entouré de guillemets, vous devez mettre des guillemets vides comme premier argument:

start "" "\Foo\Bar\Path with spaces in it\program.exe"

Cela est dû au fait qu'il startinterprète le premier argument entre guillemets qu'il trouve comme titre de fenêtre pour une nouvelle fenêtre de console.

Joey
la source
17
Excellent conseil avec des guillemets doubles avant le chemin réel. Je n'aurais jamais deviné cela. Merci pour le partage.
Alexandru Dicu
merci, il a aidé. J'ai également utilisé l'option / SEPARATE
Ayusman
1
@Ayusman: Ces options ne concernent que les programmes 16 bits. J'espère sûrement que vous n'en avez pas encore.
Joey
4
Bien sûr, il n'est pas nécessaire que ce soit des guillemets vides ... vous pouvez lui donner un titre pertinent. Je recommanderais fortement cela car cela rendra beaucoup plus clair pour les autres personnes qui voient ce qui se passe. start "Obligatory Atavistic Window Title" "\Foo\Bar\Path with spaces in it\program.exe"
shiser
1
Après des heures de recherche sur Google, je trouve enfin la réponse. Merci!
Sellorio
9

Si votre exe prend des arguments,

start MyApp.exe -arg1 -arg2
Shital Shah
la source
8

J'ai utilisé start / b pour cela au lieu de simplement démarrer et il a fonctionné sans fenêtre pour chaque commande, il n'y avait donc pas d'attente.

Ed Bayiates
la source
Exactement ce que je cherchais!
Fábio Amorim le
4

S'il startne trouve pas ce qu'il cherche, il fait ce que vous décrivez.

Puisque ce que vous faites devrait fonctionner, il est très probable que vous omettiez des citations (ou que vous ajoutiez des extras).

égrunine
la source
Oui, j'ai mis deux citations. Mais ils sont obligatoires pour le nom de chemin long. Comment résoudre le problème?
Mark Attwood