start /b "" "c:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" -startvm "debian604 64"
Wenn Sie die Parameterliste mit start /?
lesen:
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.
Es wird eine in Anführungszeichen eingeschlossene title
erwartet ("
). Da Ihr Programmpfad Anführungszeichen enthielt, wurde er als Titel interpretiert. Das Hinzufügen eines expliziten Titels (in diesem Fall leer, ""
) funktioniert.
Eine alternative Methode ist die Verwendung des Schalters /d
zur Angabe des Pfades. Konkret:
start /b /d "c:\Program Files\Oracle\VirtualBox\" VBoxHeadless.exe -startvm "debian604 64"
Es scheint, dass das erste Argument nach der Befehlszeilenoption /d
als Pfad verwendet wird, auch wenn es zitiert wird, und wenn das nächste Argument nicht zitiert wird, funktioniert dies. Alles nach dem, was als Befehl/Programm erkannt wird, wird als Parameter an diesen Befehl/Programm übergeben. Beachten Sie, dass dies nicht funktioniert, wenn der Befehl/das Programm Leerzeichen im Namen enthält, z.B. VBox Headless.exe
, da dies Anführungszeichen erfordern und als Titel erkannt werden würde.
Insgesamt ist die erste (explizite Titel-) Methode wahrscheinlich besser. Es war eine schlechte Designwahl von Seiten Microsofts, sie hätten wirklich einen Schalter für den Titel hinzufügen sollen, anstatt “ist das erste Argument in Anführungszeichen eingeschlossen?