Comment appeler un programme contenant un espace dans le nom du fichier?

11

J'ai essayé de lancer une ligne de commande quelque chose comme ceci: start /max C:\Program files\foo\ba.exe -somearguments.

Mais j'ai un problème, la cmd renvoie un message d'erreur du genre: The system cannot found the C:\Program filesi je mets les C:\Program files\foo\ba.exeguillemets autour, elle exécute simplement une nouvelle fenêtre cmd en mode MAX sans exécuter le programme.

Comment régler ceci?

Jack
la source

Réponses:

12

Tous les noms de fichiers et chemins contenant des espaces doivent être cités.

Ensuite, en ce qui concerne votre question, pourquoi ne pas indiquer le chemin comme:

start /max /d"C:\Program files\foo\" ba.exe -somearguments
Silviu
la source
Cette réponse n’est qu’une solution partielle: cela fonctionnera s’il ya des espaces dans le chemin mais ne fonctionnera pas s’il ya des espaces dans le nom du fichier. L'appel de '' start "b a.exe" a échoué. "
Georg W.
15

L'erreur s'est produite parce que le système a interprété votre commande comme un fichier C:\Programet filecomme un argument de votre commande. Évidemment, il ne trouve pas le fichier Programet renvoie cette erreur.

Pour résoudre ce problème, il suffit d'inclure ""sur le chemin entre les mots avec le caractère d'espacement ou sur le chemin complet:

start /max C:\"Program files"\foo\ba.exe -somearguments

ou

start /max "C:\Program files\foo\ba.exe" -somearguments
Diogo
la source
Il doit y avoir un ""chemin de programme avant dans le deuxième exemple; voir superuser.com/a/239572/1686 pour savoir pourquoi.
Grawity
Vous dites que je dois l'inclure? Je viens de tester ici maintenant et cela a fonctionné sans "" avant ...
Diogo
Cela aurait peut-être changé, mais cmd.exesous Windows XP, il serait nécessaire.
Grawity
Je viens de l'essayer et Windows 7 n'accepte définitivement pas le deuxième exemple, bien que le premier fonctionne.
Harry Johnston
1
Et bravo à la personne chez MicroSoft qui a décidé d'utiliser un espace dans le nom du dossier!
Michael Potter
2

Bien que le chemin d'accès entre guillemets soit le plus facile et le plus clair à lire, vous pouvez également utiliser les anciens noms abrégés DOS (puisque DOS suivait la dénomination 8.3, les noms de fichiers de plus de 8 caractères étaient tronqués ~1). Ces noms n'ont pas d'espaces. Vous pouvez voir les noms abrégés des fichiers avec la DIR /Xcommande.

Sachleen
la source
1

Dans Win10, vous pouvez essayer ceci:

start /max C:\Program%20files\foo\ba.exe -somearguments
Ivan M
la source
1
Bienvenue sur Super User! Pouvez-vous expliquer ce que vous suggérez? :)
bertieb