我需要创建一个批处理文件,在Windows .cmd文件中启动多个控制台应用程序。这可以使用start命令完成。
但是,该命令中有一个路径。我还需要传递有空格的参数。怎么做?
E.g。批处理文件
start "c:\path with spaces\app.exe" param1 "param with spaces"
答案 0 :(得分:160)
实际上,他的例子不起作用(虽然起初我认为它也会这样)。根据Start命令的帮助,第一个参数是新创建的命令提示符窗口的名称,第二个和第三个参数应分别是应用程序及其参数的路径。如果你在应用程序的路径之前添加另一个“”,它应该工作(至少它对我来说)。使用这样的东西:
start "" "c:\path with spaces\app.exe" param1 "param with spaces"
您可以将第一个参数更改为您希望新命令提示符的标题。如果它是创建的Windows应用程序,则不会显示命令提示符,标题也无关紧要。
答案 1 :(得分:15)
使用撇号转义路径是正确的,但start命令采用包含新窗口标题的参数。此参数由周围的撇号检测,因此不会执行您的应用程序。
尝试这样的事情:
start "Dummy Title" "c:\path with spaces\app.exe" param1 "param with spaces"
答案 2 :(得分:2)
start "" "c:\path with spaces\app.exe" "C:\path parameter\param.exe"
当我使用上述建议时,我得到了:
' C:\路径'不被识别为内部或外部命令,可操作程序或批处理文件。
我认为第二个qoutation标记会阻止命令运行。在解决方案下面的一些搜索之后保存我的一天:
start "" CALL "c:\path with spaces\app.exe" "C:\path parameter\param.exe"
答案 3 :(得分:1)
有趣的是,似乎在Windows Embedded Compact 7中,您无法指定标题字符串。第一个参数必须是命令或程序。
答案 4 :(得分:0)
你要使用这样的东西:
开始/ d C:\ Windows \ System32 \ calc.exe
开始/ d“C:\ Program Files \ Mozilla
Firefox“firefox.exe start / d
“C:\ Program Files \ Microsoft
Office \ Office12“EXCEL.EXE
另外,我建议您使用特殊的批处理文件编辑器 - Dr.Batcher
答案 5 :(得分:-1)
在示例中应该使用引号内的空格包围路径和参数。在将参数传递给它时,命令可能需要处理引号,但这通常不是什么大问题。
答案 6 :(得分:-1)
我研究成功,它对我来说很好。我的要求是使用vbscript发送一封电子邮件,需要从windows中的批处理文件调用。这是我使用的确切命令,没有错误。
START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"