配置文件需要另一个文件的位置,
但该文件位于"C:\ Program Files"中,
并且无法识别其中包含空格的路径,
还有另一种方法来指定没有空格的位置吗?
Bor*_*éry 88
你应该可以使用
试试c:\> dir/x(在dos shell中)
这将显示为非8dot3文件名生成的短名称.格式为/ N,在长名称之前插入短名称.如果没有短名称,则会在其位置显示空白.
lit*_*lit 30
切勿对此位置进行硬编码.使用环境变量%ProgramFiles%或%ProgramFiles(x86)%.
指定这些时,请始终引用,因为Microsoft可能在其中放置了空格或其他特殊字符.
"%ProgramFiles%\theapp\app.exe"
"%ProgramFiles(x86)%\theapp\app.exe"
Run Code Online (Sandbox Code Playgroud)
此外,目录可能以您不知道的语言表达.http://www.samlogic.net/articles/program-files-folder-different-languages.htm
使用以下表示法:
感谢@lit在下面的评论中给出了理想的答案:
使用环境变量%ProgramFiles%和%ProgramFiles(x86)%
:
我认为那些建议使用C:\ PROGRA~1名称收到downvotes的原因是因为这些名称被视为Windows最遗忘的遗留功能,这可能也是不稳定的,至少在不同的安装之间,尽管可能不是同一台机器.
此外,正如有人在对另一个答案的评论中指出的那样,Windows可以配置为根本不在文件系统中具有8.3遗留名称.
Windows shell(假设您正在使用CMD.exe)使用%ProgramFiles%指向Program Files文件夹,无论它在何处.由于默认的Windows文件打开器会考虑这样的环境变量,如果程序写得很好,它应该支持这个.
此外,值得使用相对地址.如果您正在使用的程序安装正确,它应该已经在Program Files文件夹中,因此您可以将配置文件称为.\ config_file.txt,如果它与程序位于同一目录中,或者..\other_program\config_file.txt如果它在一个不同于另一个程序的目录中.这不仅适用于Windows,而且适用于几乎所有现代操作系统,并且如果您正确设置了"开始"框,或者直接从其文件夹运行它,它将正常工作.
应该有一种方法可以c:\program files直接使用完整路径.通常,它涉及将字符串包装在引号中.例如,在Windows命令行上;
c:\program files\Internet Explorer\iexplore.exe
Run Code Online (Sandbox Code Playgroud)
不会启动Internet Explorer,但是
"c:\program files\Internet Explorer\iexplore.exe"
Run Code Online (Sandbox Code Playgroud)
将.