start /b "" "c:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" -startvm "debian604 64"
如果你读取参数列表中的start /?
:
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
[command/program] [parameters]
"title" Title to display in window title bar.
command/program
If it is an internal cmd command or a batch file then
the command processor is run with the /K switch to cmd.exe.
This means that the window will remain after the command
has been run.
If it is not an internal cmd command or batch file then
it is a program and will run as either a windowed application
or a console application.
parameters These are the parameters passed to the command/program.
,它期望有一个title
,用双引号("
)括起来。因为你的程序路径包含了引号,所以它被解释为标题。添加一个显式的标题(在本例中,是空的,""
)就可以了。
另一种方法是使用/d
开关来指定路径。具体来说:
start /b /d "c:\Program Files\Oracle\VirtualBox\" VBoxHeadless.exe -startvm "debian604 64"
&001
它似乎把/d
开关后的第一个参数作为路径,即使它被引用了,如果下一个参数没有被引用,那么这个方法也可以。识别为命令/程序之后的所有内容都会作为参数传递给该命令/程序。请注意,如果命令/程序的名称中有空格,例如VBox Headless.exe
,这将不起作用,因为这将需要加引号,并被识别为标题。这是微软的一个糟糕的设计选择,他们真的应该为标题添加一个开关,而不是 “第一个参数是用引号括起来的吗?"。