如何在Windows中使用带有路径的“开始”和带空格的命令创建批处理文件

如何在Windows中使用带有路径的“开始”和带空格的命令创建批处理文件

How to create batch file in Windows using “start” with a path and command with spaces

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

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

例如。 批处理文件

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

实际上,他的例子是行不通的(尽管起初我以为也是)。根据"启动"命令的帮助,第一个参数是新创建的"命令提示符"窗口的名称,第二个和第三个应该分别是应用程序及其参数的路径。如果您在应用程序的路径前添加另一个"",它应该可以正常工作(至少对我有用)。

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

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


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

尝试这样的事情:

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


1
start"""c:\path with spaces\app.exe""C:\path parameter\param.exe"

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

'c:\path' is not recognized a an internal or external command, operable program or batch file.

我认为第二个qoutation标记阻止命令运行。经过以下解决方案的一些搜索后,请保存我的一天:

1
start"" CALL"c:\path with spaces\app.exe""C:\path parameter\param.exe"

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


您将使用以下内容:

start /d C:\Windows\System32\calc.exe

start /d"C:\Program Files\Mozilla

Firefox" firefox.exe start /d

"C:\Program Files\Microsoft

Office\Office12" EXCEL.EXE

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


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

1
START C:\Windows\System32\cscript.exe"C:\Documents and Settings\akapoor\Desktop\Mail.vbs"


如示例所示,在路径和参数周围用引号引起来。在将参数传递给命令时,该命令可能需要处理引号,但通常没什么大不了的。


推荐阅读