start
Windows 7 명령 줄 의 명령으로 백그라운드에서 프로그램 (가상 머신)을 시작해야합니다 . 일반적으로 다음과 같이합니다.
start /b cmd yourprogram
그러나 몇 가지 인수를 전달해야 /b
하며 디버그 정보를 볼 수있는 플래그가 없는 경우 가 있습니다.
start C:\Users\USER>start "c:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe" -startvm "debian604 64"
이 오류 메시지가 나타납니다.
Windows에서 ‘-startvm’을 찾을 수 없습니다. 이름을 올바르게 입력했는지 확인한 후 다시 시도하십시오.
반면에 현재 명령 줄 창 start
에서 시작 하지 않고 가상 머신은 정상적으로 실행되지만 전경에서는 실행합니다.
어떤 솔루션?
답변
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
따옴표로 묶여 ( "
). 프로그램 경로에 따옴표가 포함되어 있으므로 제목으로 해석됩니다. 명시 적 제목 (이 경우에는 empty ""
)을 추가하면 작동합니다.
다른 방법은 /d
스위치를 사용하여 경로를 지정하는 것입니다. 구체적으로 :
start /b /d "c:\Program Files\Oracle\VirtualBox\" VBoxHeadless.exe -startvm "debian604 64"
/d
인용 된 경우에도 스위치 다음의 첫 번째 인수를 경로로 사용하고 다음 인수가 인용되지 않은 경우 작동합니다. 명령 / 프로그램으로 인식 된 이후의 모든 항목은 해당 명령 / 프로그램에 매개 변수로 전달됩니다. 명령 / 프로그램에 이름에 공백 VBox Headless.exe
이 있으면 따옴표가 필요하고 제목으로 인식되므로이 기능 은 작동하지 않습니다 .
전반적으로 첫 번째 (명백한 제목) 방법이 더 좋습니다. 마이크로 소프트 측에서는 잘못된 디자인을 선택했다. “따옴표로 묶은 첫 번째 인수가 아닌”제목 대신 스위치를 추가해야했다.
답변
실제로 받아 들여진 대답은 여전히 해결책이 아닙니다. 명령이 실행 된 cmd 창을 닫으면 실행중인 가상 머신이있는 vboxheadless 프로세스가 종료됩니다.
아래의 접근 방식을 사용하면 PowerShell 이 독립적 인 프로세스를 실행 하게 됩니다.
cmd에서 다음을 실행하십시오.
cd "c:\Program Files\Oracle\VirtualBox"
vboxmanage list vms
이것은 다음과 같은 것을 반환합니다 :
"Webserver LAP" {8748b594-7e2d-4d8d-8785-999940766754}
이제 UUID를 사용하여 다음을 실행하십시오 (여전히 cmd).
powershell start-process 'C:\program files\oracle\virtualbox\vboxheadless' '-s 8748b594-7e2d-4d8d-8785-999940766754' -WindowStyle Hidden
이 기사 의 저자에게 감사합니다 .