78

我需要创建一个批处理文件,它在 Windows .cmd 文件中启动多个控制台应用程序。这可以使用启动命令来完成。

但是,该命令中有一条路径。我还需要传递也有空格的参数。这该怎么做?

例如批处理文件

start "c:\path with spaces\app.exe" param1 "param with spaces"
4

7 回答 7

166

实际上,他的例子是行不通的(虽然一开始我也认为它会)。根据 Start 命令的帮助,第一个参数是新创建的命令提示符窗口的名称,第二个和第三个应该分别是应用程序及其参数的路径。如果您在应用程序的路径之前添加另一个“”,它应该可以工作(至少它对我有用)。使用这样的东西:

start "" "c:\path with spaces\app.exe" param1 "param with spaces"

您可以将第一个参数更改为您希望新命令提示符的标题。如果是创建的 Windows 应用程序,则不会显示命令提示符,标题也无关紧要。

于 2008-09-16T14:18:17.663 回答
16

用撇号转义路径是正确的,但是 start 命令需要一个包含新窗口标题的参数。此参数由周围的撇号检测,因此您的应用程序不会被执行。

尝试这样的事情:

start "Dummy Title" "c:\path with spaces\app.exe" param1 "param with spaces"
于 2008-09-16T14:16:13.207 回答
2
start "" "c:\path with spaces\app.exe" "C:\path parameter\param.exe"

当我使用上述建议时,我得到了:

'c:\path' 不是内部或外部命令、可运行程序或批处理文件。

我认为第二个引号会阻止命令运行。在下面的解决方案中进行一些搜索后,可以节省我的时间:

start "" CALL "c:\path with spaces\app.exe" "C:\path parameter\param.exe"
于 2017-04-18T08:24:46.200 回答
1

有趣的是,在 Windows Embedded Compact 7 中,您似乎无法指定标题字符串。第一个参数必须是命令或程序。

于 2012-08-15T10:50:16.330 回答
0

你要使用这样的东西:

开始 /d C:\Windows\System32\calc.exe

开始 /d "C:\Program Files\Mozilla

火狐" firefox.exe 启动 /d

“C:\程序文件\微软

Office\Office12" EXCEL.EXE

我还建议您使用特殊的批处理文件编辑器 - Dr.Batcher

于 2010-01-05T11:31:24.103 回答
-1

如您的示例中那样,用引号内的空格包围路径和参数。该命令可能需要在将参数传递给它时处理引号,但这通常没什么大不了的。

于 2008-09-16T14:13:33.043 回答
-1

我研究成功,对我来说效果很好。我的要求是使用需要从 Windows 中的批处理文件调用的 vbscript 发送电子邮件。这是我正在使用的确切命令,没有错误。

START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"
于 2013-10-11T10:58:14.103 回答