如何将包含空格的目录路径传递给Windows Shell?

5

我正在使用IEcapt.exe来捕获网站快照。

问题是,它无法处理具有空格的路径目录。就像这样:

c:\program files\

有没有办法让我传递这样的目录使其工作?
4个回答

12

通常只需将Windows路径用双引号括起来即可:

IEcapt.exe "C:\Program Files\some path"

如果那真的不起作用,您或许可以考虑使用8.3 文件名,或者在程序文件的情况下,使用 %programfiles% 变量。


1
更新了来自Wayback Machine的链接。 - kojiro

2
请参考kojiro的回复。但是,如果您真的无法使用空格或较长的文件名,则可以使用以下技巧,因为您调用的工具不支持它们。我曾经在使用来自微软的一些构建工具时遇到过这种情况。
由于短文件名不允许包含空格,我们可以使用:
%~sI

...其中I是当前子程序(或脚本)参数的编号。由于这是仅适用于编号参数的功能,您可能需要使用间接方式,例如:

call :mysub "%ProgramFiles%"

:mysub
set VARIABLE=%~s0
goto :eof

0

我希望我能够使用上述方法之一。然而,我只能使用旧的DOS短文件名。

DOS文件名超过8个字符时,文件名会被截断为~number。例如,C:\Program Files将变为c:\progra~1,而C:\Program Files (x86)将变为c:\progra~2。

您可以使用DIR /X命令查找文件的短名称。

我需要这个特定的方法来从Atom文本编辑器中启动ConEmu。

我从Sachleen的答案HERE中得出了这个方法。


0

kojiro的回答是正确的。但在我的情况下,我需要

IEcapt.exe "%programfiles%\some path"

而不是

IEcapt.exe %programfiles%\some path

第二个例子使用echo命令在屏幕上打印整个路径,但我需要第一个例子将其正确传递给我的脚本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接