对于无法处理文件路径中的空格的程序,如何在没有空格的情况下指定C:\ Program Files?

问题描述 投票:41回答:14

配置文件需要另一个文件的位置,

但该文件位于“C:\ Program Files”中,

并且无法识别其中包含空格的路径,

还有另一种方法来指定没有空格的位置吗?

windows
14个回答
85
投票

你应该可以使用

  • “c:\ Program Files”(注意引号)
  • c:\ PROGRA~1(短名称表示法)

试试c:\> dir / x(在dos shell中)

这将显示为非8dot3文件名生成的短名称。格式为/ N,在长名称之前插入短名称。如果没有短名称,则会在其位置显示空白。


0
投票

您可以尝试使用:

C:\PROGRA~1

0
投票

我认为其他帖子已回答了这个问题,但只是一些有趣的信息(来自命令提示符):

dir c:/ ad / x

这将提供仅列出目录的列表,并提供其“短名称”。


-2
投票

使用生成的短名称(C:\ Progra~1)或用引号括起路径。


-2
投票

作为其他答案的替代方案,您可以尝试使用符号链接。

首先创建符号链接,然后根据链接安装应用程序。 (根据具体情况,这可能更容易,例如当应用程序在其代码中提到目标文件夹时)

符号链接将创建类似于文件夹快捷方式的内容,但被其他应用程序视为实际文件夹。

这是你如何做到的:

  • 以管理员身份运行cmd
  • 使用此命令:mklink /D "C:\LinkToProgramFiles" "C:\Program Files"

然后,您开始在无法处理空间的应用程序中使用“C:\ LinkToProgramFiles”。 (此链接可在Windows资源管理器中显示为带有快捷方式符号的文件夹)


如果你开始玩这个太多,要非常小心不要创建循环链接。


-3
投票

您可以在本地D或本地C创建一个文件夹ProgramFiles,以安装那些可以安装到其上有SPACES / Characters的文件夹名称的应用程序。


21
投票

切勿对此位置进行硬编码。使用环境变量%ProgramFiles%%ProgramFiles(x86)%

指定这些时,请始终引用,因为Microsoft可能在其中放置了空格或其他特殊字符。

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

此外,目录可能以您不知道的语言表达。 http://www.samlogic.net/articles/program-files-folder-different-languages.htm


7
投票

我认为那些建议使用C:\ PROGRA~1名称收到downvotes的原因是因为这些名称被视为Windows最遗忘的遗留功能,也可能是不稳定的,至少在不同的安装之间,尽管可能不在同一台机器。

此外,正如有人在对另一个答案的评论中指出的那样,Windows可以配置为根本不在文件系统中具有8.3遗留名称。


6
投票

Windows shell(假设您正在使用CMD.exe)使用%ProgramFiles%指向Program Files文件夹,无论它在何处。由于默认的Windows文件打开器会考虑这样的环境变量,如果程序写得很好,它应该支持这个。

此外,值得使用相对地址。如果您正在使用的程序安装正确,它应该已经在Program Files文件夹中,因此您可以将配置文件称为。\ config_file.txt,如果它与程序位于同一目录中,或者.. \ other_program \ config_file.txt如果它在一个不同于另一个程序的目录中。这不仅适用于Windows,而且适用于几乎所有现代操作系统,并且如果您正确设置了“开始”框,或者直接从其文件夹运行它,它将正常工作。


6
投票

使用以下表示法:

  • 对于“C:\ Program Files”,请使用“C:\ PROGRA~1”
  • 对于“C:\ Program Files(x86)”,请使用“C:\ PROGRA~2”

感谢@lit在下面的评论中给出了理想的答案:

使用环境变量%ProgramFiles%和%ProgramFiles(x86)%

:


5
投票

应该有一种方法可以直接使用完整的c:\program files路径。通常,它涉及将字符串包装在引号中。例如,在Windows命令行上;

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

不会启动Internet Explorer,但是

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

将。


1
投票

没有。

有时您可以引用文件名。

"C:\Program Files\Something"

有些程序会容忍引号。由于您没有提供任何特定程序,因此无法确定引用是否适合您。


1
投票

尝试用引号括起路径。即“C:\ Program Files \ Appname \ config.file”


1
投票

对于无法处理文件路径中空格的程序,可以使用以下方法指定C:\ Program Files,但不包含空格:

'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.
© www.soinside.com 2019 - 2024. All rights reserved.