我需要创建一个批处理文件,在Windows .cmd文件中启动多个控制台应用程序。这可以使用start命令完成。
但是,该命令中有一个路径。我还需要传递带有空格的参数。如何做到这一点?
例如,批处理文件:
start "c:\path with spaces\app.exe" param1 "param with spaces"
我需要创建一个批处理文件,在Windows .cmd文件中启动多个控制台应用程序。这可以使用start命令完成。
但是,该命令中有一个路径。我还需要传递带有空格的参数。如何做到这一点?
例如,批处理文件:
start "c:\path with spaces\app.exe" param1 "param with spaces"
实际上,他的例子是行不通的(尽管一开始我也认为会)。根据Start命令的帮助文档,第一个参数是新创建的命令提示符窗口的名称,第二个和第三个应该分别是应用程序的路径和其参数。如果在应用程序路径前再添加一个 "",它就应该能够工作(至少对我来说是这样的)。使用类似于以下内容:
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"
test 2.bat
,然后使用以下命令创建一个名为test1.bat
的文件:START "Test title" "test 2.bat" %*
- 现在运行test1.bat "param 1"
,但它无法正常工作,为什么? - ale5000你需要使用类似以下的命令:
start /d C:\Windows\System32\calc.exe
start /d "C:\Program Files\Mozilla
Firefox" firefox.exe start /d
"C:\Program Files\Microsoft
Office\Office12" EXCEL.EXE
我还建议你使用特殊的批处理文件编辑器 - Dr.Batcher。
我已经成功地进行了研究,并且它对我来说运作良好。我的要求是使用VBScript发送电子邮件,需要从Windows中的批处理文件中调用。这里是我正在使用的精确命令,没有错误。
START C:\Windows\System32\cscript.exe "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"
START "" "C:\Documents and Settings\akapoor\Desktop\Mail.vbs"
。你的代码之所以能够工作,是因为vbs是一个扩展名,在“启动”时会被解析。尝试使用路径调用notepad.exe,它不会起作用。它将始终执行脚本。 - Samuel在引号内将路径和参数用空格括起来,就像您的示例一样。当参数传递给命令时,该命令可能需要处理引号,但通常不是什么大问题。
start /B "app"
不起作用,而start cmd /C "app"
会给我一个多余的控制台。谢谢!我终于学会了我需要一个窗口标题来进行非窗口启动。这个可以:start /B "" "app"
。 - Keith Robertson/wait
参数,情况仍然是实际的!当使用start "" /wait "%CDir%\cron.exe" -q -remove
时可以工作,但start /wait "%CDir%\cron.exe" -q -remove
无法工作。 - Fr0sT