Как запустить программу с аргументами командной строки в Windows 'cmd с командой' start '?

Мне нужно запустить программу (виртуальную машину) в фоновом режиме с помощью команды 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 в начале, виртуальная машина работает нормально – но на переднем плане.

Любые решения?

  • Windows 7 собирается спать или блокировать экран во время просмотра видео в браузере
  • Хранилище Chrome cookie в Windows 7
  • Щелкните правой кнопкой мыши по выходу мыши Проводник Windows
  • Как превратить изображения в слайд-шоу со звуком
  • Не удается запустить .exe с сетевого диска.
  • Могу ли я заставить Windows иметь несколько паролей для одного пользователя?
  • GIMP 2.6.11 на Windows 7 64-битный не может открывать файлы PNG
  • Как настроить двойные наушники под Windows 7?
  • 2 Solutions collect form web for “Как запустить программу с аргументами командной строки в Windows 'cmd с командой' 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 заключенный в кавычки ( " ). Поскольку ваш путь к программе включал кавычки, он интерпретировался как заголовок. Добавляет явный заголовок (в данном случае пустой, "" ).


    Альтернативный метод использует /d переключатель для указания пути. В частности:

     start /b /d "c:\Program Files\Oracle\VirtualBox\" VBoxHeadless.exe -startvm "debian604 64" 

    Кажется, он принимает первый аргумент после /d переключателя в качестве пути, даже если он указан, и если следующий аргумент не цитируется, то это работает. Все, что распознается как команда / программа, передается в качестве параметра этой команде / программе. Обратите внимание, что это не сработает, если команда / программа имеет пробелы в имени, например VBox Headless.exe , поскольку для этого потребуются кавычки и будут распознаны как заголовок.


    В целом, первый (явный заголовок) метод, вероятно, лучше. Это был плохой выбор дизайна со стороны Microsoft, они действительно должны были добавить переключатель для названия, а не «первый аргумент, заключенный в кавычки?».

    На самом деле принятый ответ все еще не является решением. Закрытие окна 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 

    Спасибо автору этой статьи .

    Давайте будем гением компьютера.