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

StackOverflow https://stackoverflow.com/questions/72671

  •  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"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top