start /b "" "c:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" -startvm "debian604 64"
Si lees 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.
Espera un title
entre comillas ("
). Como la ruta de tu programa incluía comillas, se interpretó como el título. Añadir un título explícito (en este caso, vacío, ""
) funciona.
Un método alternativo es usar el interruptor /d
para especificar la ruta. Específicamente:
start /b /d "c:\Program Files\Oracle\VirtualBox\" VBoxHeadless.exe -startvm "debian604 64"
Parece que toma el primer argumento después del conmutador /d
como el camino, incluso si está citado, y si el siguiente argumento no está citado entonces esto funciona. Todo lo que sigue a lo que se reconoce como el comando/programa se pasa como un parámetro a ese comando/programa. Nótese 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 se reconocería 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 añadido un cambio para el título en lugar de “¿el primer argumento está entre comillas?