使用空格/引号启动批处理文件,阻止批处理运行


0

我有这个简单的批处理脚本。让我们称之为'Hello World.bat':

echo "Hello World!"

在命令行中,运行

cmd /c start "C:\path\to\Hello World.bat"

导致显示新的命令行窗口,但不执行.bat文件中的代码。

我可以将此bat文件重命名为Hello_World.bat,从命令行命令中删除引号,它可以正常工作。但是,使用引号(由于空格而必需),它将无法工作。

有什么建议么?我正在处理的应用程序调用客户放置的批处理文件,所以不幸的是只是重命名它不是一个选项。


是否必须在新的CMD窗口中打开?
Tim G.

Answers:


1

Start命令实际上要求你输入这样的title参数:

start ["<Title>"] [/d <Path>]

您可以通过在文件路径前添加空“”来解决此问题,如下所示:

cmd start "" /c "C:\path\to\Hello World.bat"

有趣。似乎“cmd start / c”C:\ path \ to \ Hello World.bat“也做了我想要的。为什么这个工作,我原来的工作不起作用?编辑:嗯,实际上它并没有'通过命令行工作,但它在我的Java代码中...一秒钟。
Kornephoros 2016年

我结束了这一切。似乎有点奇怪的是,/ c参数的排序改变了命令的行为,我仍然不太明白,但是谢谢你指出我正确的方向。
Kornephoros 2016年

2
小修正:“根据Microsoft文档,标题是可选的,但根据所选择的其他选项,如果省略,则可能会出现问题。” - 所以建议总是包括一个标题,这可以是一个简单的字符串,如“我的脚本”或只是一对空引号“”。见开始
DavidPostill
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.