Comment démarrer des exécutables via une invite de commande avec des fichiers nommés espace et sans programme d'attente en attente de fermeture du programme?

5

Je voudrais créer des raccourcis vers certains fichiers exécutables (exe, bat, com ...) sur Windows 7 à l'aide de fichiers bat, mais j'ai eu quelques problèmes avec cela:

  1. start notepad.exefonctionne parfaitement, mais start Foxit Reader.exeou start "Foxit Reader.exe"ne fonctionnera pas. Comment utiliser la startcommande avec des fichiers nommés avec des espaces?

  2. call notepad.exeou start "Foxit Reader.exe"ou simplement notepad.exeou "Foxit Reader.exe"fonctionne mais une invite de commande est ouverte et reste ouverte jusqu'à ce que l'utilisateur la ferme ou appelle l'exécutable. Un moyen de l'éviter?

Kokbira
la source

Réponses:

5

Lisez l'aide pour startattentivement. Et startn'attend pas par défaut la fin du processus démarré (il y a un /waitindicateur pour le mode "attente").

start "" "Foxit Reader.exe"
Maximus
la source
Oh mon! Si je pouvais poser cette question au bénéfice de la prime aujourd'hui, je vous attribuerais 50 points :)
kokbira
Note to self: Tapez plus vite.
Mark Allen
4

Start semble prendre le premier paramètre comme titre s'il y a un espace.

Donc, bien que cela ne fonctionne pas pour moi:

start "c:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe"

Cela a :start "" "c:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe"

Mark Allen
la source
1
Bien que @maximus ait répondu au début, votre réponse explique pourquoi startne fonctionne pas avec des guillemets ...
kokbira
3

Utilisez des citations comme ceci:

commencer "" "Y: \ foo bar \ xyz"

Si le premier argument est cité, start suppose qu'il s'agit du titre de la nouvelle fenêtre de la console, lancez donc une nouvelle fenêtre de la console. L'argument suivant sera alors interprété correctement en tant que commande à exécuter / fichier à ouvrir.

Ankit
la source