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


78

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

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

例如批处理文件

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

Answers:


165

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

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

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


窗口标题似乎是强制性的,尽管互联网上有很多说明文件。忽略该文档。遵循安迪的建议。
科林

如果从交互式输入Windows应用程序命令,则该应用程序将在后台启动,并且会看到一个新提示。如果我从批处理脚本运行相同的命令,则应用程序在前台启动;我的批处理脚本将停止运行,直到我退出该应用程序为止。ek!我尝试了很长时间使用start在后台运行我的应用程序,但start /B "app"无法正常工作,并start cmd /C "app"给了我一个多余的控制台。谢谢!!我终于了解到,对于非窗口启动,我需要一个窗口标题。该作品: start /B "" "app"
Keith Robertson 2013年

谢谢!即使/wait指定了参数,情况也是实际的!start /wait "%CDir%\cron.exe" -q -remove不能同时起作用start "" /wait "%CDir%\cron.exe" -q -remove
Fr0sT

如果我发现你的答案后,它可以挽救我的一天((但无论如何感谢名单!
丹尼斯·彼得罗夫

15

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

尝试这样的事情:

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

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

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

无法将'c:\ path'识别为内部或外部命令,可操作程序或批处理文件。

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

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

创建一个空文件test 2.bat,然后使用以下命令创建一个文件test1.batSTART "Test title" "test 2.bat" %*-现在运行test1.bat "param 1",它将无法正常工作,为什么?
ale5000

1

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


0

您将使用以下内容:

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

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

Firefox“ firefox.exe开始/ d

“ C:\ Program Files \ Microsoft

Office \ Office12“ EXCEL.EXE

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


-1

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


-1

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

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

错了 你可以写START "" "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"。您的代码仅能正常工作,因为vbs是扩展名,当您“启动”它时即可解决。尝试使用路径调用notepad.exe,它将无法正常工作。它将始终执行脚本。
塞缪尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.