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"
По-видимому, в качестве пути берется первый аргумент после /d
переключателя, даже если он указан в кавычках, а если следующий аргумент не заключен в кавычки, это работает. Все, что распознано как команда / программа, передается в качестве параметра этой команде / программе. Обратите внимание, что это не будет работать, если у команды / программы есть пробелы в имени, например VBox Headless.exe
, так как для этого потребуются кавычки и они будут распознаваться как заголовок.
В целом, первый (явное название) метод, вероятно, лучше. Это был неудачный выбор дизайна со стороны Microsoft, им действительно следовало добавить переключатель заголовка, а не «первый аргумент заключен в кавычки?».
start /b
, не ставьте виртуальную машину в фоновом режиме. Я должен придумать что-то еще тогда.