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