web-dev-qa-db-fra.com

Comment créer un fichier batch sous Windows en utilisant "start" avec un chemin et une commande avec des espaces

J'ai besoin de créer un fichier de commandes qui démarre plusieurs applications de console dans un fichier Windows .cmd. Cela peut être fait en utilisant la commande de démarrage.

Cependant, la commande contient un chemin. J'ai aussi besoin de passer des paramères qui ont aussi des espaces. Comment faire ça?

Par exemple. fichier batch

start "c:\path with spaces\app.exe" param1 "param with spaces"
74
Tim

En fait, son exemple ne fonctionnera pas (même si au début, je pensais qu'il en serait de même). Selon l'aide de la commande Démarrer, le premier paramètre est le nom de la fenêtre d'invite de commande nouvellement créée, et les deuxième et troisième doivent être le chemin d'accès à l'application et ses paramètres, respectivement. Si vous ajoutez un autre "" avant le chemin d'accès à l'application, cela devrait fonctionner (du moins c'est ce qui s'est passé pour moi). Utilisez quelque chose comme ceci:

start "" "c:\path with spaces\app.exe" param1 "param with spaces"

Vous pouvez modifier le premier argument pour définir le titre de la nouvelle commande Invite. Si c'est une application Windows qui est créée, l'invite de commande ne sera pas affichée et le titre n'aura pas d'importance.

158
Andy

Échapper au chemin avec des apostrophes est correct, mais la commande start prend un paramètre contenant le titre de la nouvelle fenêtre. Ce paramètre est détecté par les apostrophes environnantes, votre application n'est donc pas exécutée.

Essayez quelque chose comme ça:

start "Dummy Title" "c:\path with spaces\app.exe" param1 "param with spaces"
15
Steffen
start "" "c:\path with spaces\app.exe" "C:\path parameter\param.exe"

Lorsque j'ai utilisé la suggestion ci-dessus, j'ai:

'c:\path' n'est pas reconnu par une commande interne ou externe, un programme utilisable ou un fichier de commandes. 

Je pense que le deuxième point de contrôle empêche la commande de s'exécuter. Après quelques recherches ci-dessous solution sauver ma journée:

start "" CALL "c:\path with spaces\app.exe" "C:\path parameter\param.exe"
2
Mustafa Kemal

Fait intéressant, il semble que dans Windows Embedded Compact 7, vous ne pouvez pas spécifier de chaîne de titre. Le premier paramètre doit être la commande ou le programme.

1
Mark Agate

Vous devez utiliser quelque chose comme ceci:

démarrer/d C:\Windows\System32\calc.exe

start/d "C:\Program Files\Mozilla

Firefox "firefox.exe start/d

"C:\Program Files\Microsoft

Office\Office12 "Excel.EXE

Aussi, je vous conseille d'utiliser un éditeur de fichiers batch spécial - Dr.Batcher

0
user243871