我需要创建一个批处理文件,在 Windows 中启动多个控制台应用程序。Cmd 文件。这可以使用 start 命令来完成。
但是,该命令中有一个路径。我还需要传递有空格的参数。怎么做?
例如批处理文件
start "c:\path with spaces\app.exe" param1 "param with spaces"
在路径和参数的周围使用引号中的空格,就像在示例中应该做的那样。当参数传递给该命令时,该命令可能需要处理引号,但这通常不是什么大事。
使用撇号转义路径是正确的,但 start 命令带有一个包含新窗口标题的参数。此参数由周围的撇号检测到,因此不执行应用程序。
试试这样:
start "Dummy Title" "c:\path with spaces\app.exe" param1 "param with spaces"
事实上,他的例子是行不通的(尽管一开始我也这么认为)。根据 Start 命令的帮助,第一个参数是新创建的 Command Prompt 窗口的名称,第二个和第三个应该分别是应用程序及其参数的路径。如果你添加另一个“前路径”的应用程序,它应该工作(至少它为我)。使用这样的东西:
start "" "c:\path with spaces\app.exe" param1 "param with spaces"
您可以将第一个参数更改为您希望新命令提示符的标题为的任何内容。如果创建的是 Windows 应用程序,则不会显示命令提示符,标题也不重要。
你要用这样的东西:
Start/d C: Windows System32 calc.exe Start/d“ C: Program Files Mozilla Firefox”Firefox.exe start/d ”C: Program Files Microsoft 办公室12”EXCEL.EXE
Start/d C: Windows System32 calc.exe
Start/d“ C: Program Files Mozilla
Firefox”Firefox.exe start/d
”C: Program Files Microsoft
办公室12”EXCEL.EXE
我还建议您使用特殊的批处理文件编辑器 -巴切尔博士
有趣的是,在 Windows Embedded Compact 7中,似乎不能指定 title 字符串。第一个参数必须是命令或程序。
我研究得很成功,对我来说效果很好。我的要求是发送一个电子邮件使用 vbscript,需要从一个批处理文件在窗口调用。下面是我正在使用的命令,没有错误。
START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"
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"