web-dev-qa-db-fra.com

Comment marquer C:\Program Files sans espace pour les programmes qui ne peuvent pas gérer les espaces en chemins de fichiers?

Un fichier de configuration a besoin de la position d’un autre fichier,

mais ce fichier se trouve dans "C:\Program Files",

et le chemin avec l'espace dedans n'est pas reconnu,

Existe-t-il un autre moyen de spécifier l'emplacement sans espace?

39
omg

vous devriez pouvoir utiliser 

  • "c:\Program Files" (notez les guillemets)
  • c:\PROGRA ~ 1 (la notation du nom abrégé)

Essayez c: \> dir/x (in dos Shell)

Ceci affiche les noms abrégés généré pour des noms de fichier non-8dot3. Le format est celui de/N avec le nom court inséré avant le long prénom. Si aucun nom abrégé n'est présent, les blancs sont affichés à sa place.

85
Boris Guéry

Jamais coder en dur cet endroit. Utilisez les variables d'environnement %ProgramFiles% ou %ProgramFiles(x86)%.

Lorsque vous spécifiez ces éléments, citez-les systématiquement, car Microsoft peut avoir inséré des espaces ou d’autres caractères spéciaux.

"%ProgramFiles%\theapp\app.exe"
"%ProgramFiles(x86)%\theapp\app.exe"

De plus, le répertoire peut être exprimé dans une langue que vous ne connaissez pas. http://www.samlogic.net/articles/program-files-folder-different-languages.htm

17
lit

Je pense que la raison pour laquelle ceux qui suggèrent d’utiliser le nom C:\PROGRA ~ 1 ont reçu des votes négatifs, c’est parce que ces noms sont considérés comme une fonctionnalité héritée de Windows, qu’il est préférable d’oublier. même machine.

En outre, comme quelqu'un l'a souligné dans un commentaire à une autre réponse, Windows peut être configuré pour ne pas avoir les noms hérités 8.3 dans le système de fichiers.

7
harms

Le shell Windows (en supposant que vous utilisez CMD.exe) utilise% ProgramFiles% pour pointer vers le dossier Program Files, où qu'il se trouve. Puisque l’ouvre-fichier Windows par défaut prend en compte des variables d’environnement telles que celle-ci, si le programme était bien écrit, il devrait le prendre en charge.

En outre, il pourrait être intéressant d’utiliser des adresses relatives. Si le programme que vous utilisez est installé correctement, il doit déjà se trouver dans le dossier Program Files. Vous pouvez donc simplement désigner le fichier de configuration par.\Fichier_config.txt si son répertoire est identique, ou ..\autre_programme\fichier_config.txt si son répertoire est différent de celui de l'autre programme. Cela s’appliquerait non seulement à Windows, mais à presque tous les systèmes d’exploitation modernes, et fonctionnerait correctement si la case "Démarrer dans" est correctement définie ou si vous l’exécutez directement à partir de son dossier.

6
Andrew Scagnelli

Utilisez les notations suivantes:

  • Pour " C:\Program Files ", utilisez " C:\PROGRA ~ 1 ".
  • Pour " C:\Program Files (x86) ", utilisez " C:\PROGRA ~ 2 ".

Merci @lit pour votre réponse idéale ci-dessous commentaire:

Utilisez les variables d'environnement% ProgramFiles% et% ProgramFiles (x86)%

:

5
MrDEV

Il devrait y avoir un moyen d'utiliser directement le chemin complet c:\program files. Cela implique souvent d'encapsuler la chaîne entre guillemets. Par exemple, sur la ligne de commande Windows;

c:\program files\Internet Explorer\iexplore.exe 

ne lancera pas Internet Explorer, mais 

"c:\program files\Internet Explorer\iexplore.exe" 

volonté.

5
Steve Cooper

Vous pouvez utiliser les méthodes suivantes pour spécifier C:\Program Files sans espace pour les programmes qui ne peuvent pas gérer les espaces dans les chemins de fichiers:

'Path to Continuum Reports Subdirectory - Note use DOS equivalent (no spaces)
RepPath = "c:\progra~1\continuum_reports\" or
RepPath = C:\Program Files\Continuum_Reports  'si es para 64 bits.

' Path to Continuum Reports Subdirectory - Note use DOS equivalent (no spaces)
RepPath = "c:\progra~2\continuum_reports\" 'or
RepPath = C:\Program Files (x86)\Continuum_Reports  'si es para 32 bits.
1
dye

Non.

Parfois, vous pouvez citer le nom du fichier.

"C:\Program Files\Something"

Certains programmes toléreront les citations. Étant donné que vous n'avez fourni aucun programme spécifique, il est impossible de dire si les devis fonctionneront pour vous.

1
S.Lott

Essayez d'encercler le chemin entre guillemets. i.e "C:\Program Files\Appname\config.file"

1
Jacob Schoen

Vous pouvez essayer d'utiliser: 

C:\PROGRA~1
0
vobject

Je pense que les autres postes ont répondu à la question, mais juste quelques intéressantes pour votre information (à partir de l'invite de commande):

dir c: \/ad/x

Cela fournira une liste des répertoires seulement et fournira également leurs "noms abrégés".

0
Richard