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
จะรู้ว่าไม่ได้ใส่เครื่องเสมือนในพื้นหลัง ฉันต้องคิดอย่างอื่นอีกแล้ว