Использование команды "start" с параметрами, переданными в запущенную программу

У меня есть виртуальная машина в 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 для запуска программы с несколькими аргументами командной строки?

11 ответов

Решение

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

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

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

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

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

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

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

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

Вы можете использовать кавычки, используя [/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

Пробелы - это проблемы 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.

Ни один из этих ответов не помог мне.

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

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

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

Если вы хотите передать параметр и ваш файл.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

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

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

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

start "some valid command with spaces"

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

Если вы должны использовать двойные кавычки для любого параметра, вы можете получить ошибку "c:\somepath" не распознается внутренней или внешней командой, работающей программой или пакетным файлом ". Я предлагаю ниже решение при использовании двойной кавычки: /questions/43780366/kak-sozdat-paketnyij-fajl-v-windows-ispolzuya-start-s-putem-i-komandoj-s-probelami/43780372#43780372

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

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

Измените "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 секунды и выйдет.

Поместите команду в командный файл и вызовите ее с параметрами.

Кроме того, вы уже попробовали это? (Переместите конечную кавычку для инкапсуляции параметров)

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

Ты пытался:

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

?

Другие вопросы по тегам