Использование команды «start» с параметрами, переданными в запущенную программу - PullRequest
207 голосов
/ 30 сентября 2008

У меня есть виртуальная машина в Virtual PC 2007.

Чтобы запустить его с рабочего стола, у меня есть следующая команда в командном файле:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

Но это оставляет запрос на хост-компьютере до тех пор, пока виртуальная машина не выключится, и я не выйду из консоли Virtual PC. Это раздражает.

Поэтому я изменил свою команду, чтобы использовать вместо нее команду START:

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

Но он подавляется параметрами, передаваемыми в Virtual PC.

START /? указывает, что параметры действительно идут в этом месте. Кто-нибудь использовал START для запуска программы с несколькими аргументами командной строки?

Ответы [ 12 ]

432 голосов
/ 30 сентября 2008

START имеет особенность, заключающуюся в двойных кавычках вокруг первого параметра. Если первый параметр имеет двойные кавычки, он использует это в качестве необязательного заголовка для нового окна.

Я верю, что вы хотите:

start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

Другими словами, присвойте ему пустой заголовок перед названием программы, чтобы подделать его.

14 голосов
/ 30 сентября 2008

Вместо командного файла вы можете создать ярлык на рабочем столе.

Установите цель на:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

и все готово. Поскольку вы не запускаете командную строку для ее запуска, DOS Box не будет.

3 голосов
/ 30 июня 2012

Пробелы - это проблемы DOS / CMD, поэтому вам нужно перейти на путь через:

cd "c:\program files\Microsoft Virtual PC"

, а затем просто запустите VPC с помощью:

start Virtual~1.exe -pc MY-PC -launch

~1 означает первое exe с "Virtual" в начале. Поэтому, если есть "Virtual PC.exe" и "Virtual PC1.exe", первым будет Virtual~1.exe, а вторым Virtual~2.exe и т. Д.

Или используйте VNC-клиент, такой как VirtualBox.

0 голосов
/ 04 июня 2019

Ни один из этих ответов не работал для меня.

Вместо этого мне пришлось использовать команду Call:

Call "\\Path To Program\Program.exe" <parameters>

Я не уверен, что это на самом деле ждет завершения ... Распространяемый C ++, который я устанавливал, прошел достаточно быстро, чтобы это не имело значения

0 голосов
/ 18 апреля 2017

Если вам необходимо использовать двойные кавычки для любого параметра, вы можете получить ошибку «c: \ somepath» не распознается внутренней или внешней командой, работающей программой или пакетным файлом ». Я предлагаю следующее решение при использовании двойной кавычки: https://stackoverflow.com/a/43467194/3835640

0 голосов
/ 14 мая 2016

"/ b" параметр

start /b "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

0 голосов
/ 17 февраля 2016

Если вы хотите передать параметр и ваш файл .exe в тестовую папку диска c:

start "parameter" "C:\test\test1.exe" -pc My Name-PC -launch

Если вы не хотите передавать параметр и ваш файл .exe в тестовую папку диска c:

start "" "C:\test\test1.exe" -pc My Name-PC -launch

Если вы не хотите передавать параметр и ваш файл .exe в тестовую папку диска H: (Any Other)

start "" "H:\test\test1.exe" -pc My Name-PC -launch

0 голосов
/ 20 мая 2015

Ответ в «своеобразии» правильный и прямо отвечает на вопрос. Как ответил ТимФ, поскольку первый параметр указан в кавычках, он рассматривается как заголовок окна.

Также обратите внимание, что параметры Virtual PC рассматриваются как параметры самой команды «start» и не действительны для «start». Это верно для всех версий Windows, в которых есть команда «Пуск».

Эта проблема с обработкой 'start' цитируемого параметра как заголовка еще более раздражает, чем просто опубликованная проблема. Если вы запустите это:

start "some valid command with spaces"

Вы получаете новое окно командной строки с очевидным результатом для заголовка окна. Еще более раздражающим является то, что это новое окно не наследует настроенный шрифт, цвета или размер окна, оно просто по умолчанию для cmd.exe.

0 голосов
/ 17 июня 2013

Измените «Virtual PC.exe» на имя без пробела, например «VirtualPC.exe» в папке. Когда вы пишете start "path" с "", CMD запускает новое окно cmd с путем в качестве заголовка. Измените имя на имя без пробела, напишите это в блокноте и после этого сохраните как Name.cmd или Name.bat:

CD\
CD Program Files
CD Microsoft Virtual PC
start VirtualPC.exe
timeout 2
exit

Эта команда перенаправит CMD в папку, запустит VirualPC.exe, подождет 2 секунды и выйдет.

0 голосов
/ 13 февраля 2013

Вы можете использовать кавычки, используя [/D"Path"], используйте /D только для указания пути, а не путь + программа. Похоже, что весь код в той же строке, что следует, возвращается к обычному значению, то есть вам не нужно разделять путь и файл.

    start  /D "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

или

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

запустит IE с веб-страницей по умолчанию.

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE www.bing.com

начинается с Bing, но не сбрасывает домашнюю страницу.

/D означает «каталог», и использование кавычек в порядке!

НЕПРАВИЛЬНЫЙ ПРИМЕР:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\IEXPLORE.EXE"

дает:

ОШИБКА " Текущий каталог недействителен. "

/D должен сопровождаться только путем к каталогу. Затем пробел и пакетный файл или программа, которую вы хотите запустить / запустить

Протестировано и работает под XP, но для Windows Vista / 7/8 могут потребоваться некоторые настройки UAC.

-Mrbios

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...