start /b "" "c:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" -startvm "debian604 64"
Si lee la lista de parámetros con 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.
Se espera un title
encerrado entre comillas ( "
). Como la ruta de su programa incluía citas, se interpretó como el título. Agregar un título explícito (en este caso, vacío ""
) funciona.
Un método alternativo es usar el /d
interruptor para especificar la ruta. Específicamente:
start /b /d "c:\Program Files\Oracle\VirtualBox\" VBoxHeadless.exe -startvm "debian604 64"
Parece tomar el primer argumento después del /d
cambio como la ruta, incluso si se cita, y si el siguiente argumento no se cita, entonces esto funciona. Todo después de lo que se reconoce como comando / programa se pasa como un parámetro a ese comando / programa. Tenga en cuenta que esto no funcionará si el comando / programa tiene espacios en el nombre, por ejemplo VBox Headless.exe
, ya que eso requeriría comillas y sería reconocido como un título.
En general, el primer método (título explícito) es probablemente mejor. Fue una mala elección de diseño por parte de Microsoft, realmente deberían haber agregado un interruptor para el título en lugar de "¿está el primer argumento entre comillas?".
start /b
, no pongas la máquina virtual en segundo plano. Tengo que pensar en otra cosa entonces.