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?

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

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

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.


1

Dans Win10, vous pouvez essayer ceci:

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

1
Bienvenue sur Super User! Pouvez-vous expliquer ce que vous suggérez? :)
bertieb
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.