1

我一直在整理一个批处理脚本(Windows 命令行),并注意到引用包含空格的路径时出现了一些奇怪的行为。

要使用空格引用位置(例如 c:\Program Files),必须使用引号(“c:\Program Files”)。例如,调用 MSTest.exe,您将使用:

"c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe"

如果您还打算引用该位置的其他程序,您可能会执行以下操作:

set VSDIR="c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"
%VSDIR%\MSTest.exe

对 MSTest.exe 的扩展调用如下所示:

"c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"\MSTest.exe

这按预期工作。引号被去除,系统加载 MSTest.exe。伟大的。现在,如果我对 devenv.com 做同样的事情:

set VSDIR="c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"
%VSDIR%\devenv.com

系统默默地什么也不做。没有输出被发送到标准输出或错误,并且错误级别保持为零。在 devenv.com 之后移动报价会正常加载该过程。

任何人都知道为什么我会看到这种行为?是因为 devenv.com 以实模式运行,还是与进程本身有关?

4

0 回答 0