Использование команды "start" с параметрами, переданными в запущенную программу
У меня есть виртуальная машина в Virtual PC 2007.
Чтобы запустить его с рабочего стола, у меня есть следующая команда в пакетном файле:
"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
Но это оставляет приглашение dos на хост-машине, пока виртуальная машина не выключится, и я выхожу из консоли Virtual PC. Это раздражает.
Итак, я изменил свою команду, чтобы вместо этого использовать команду START:
start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch
Но он задыхается от параметров, переданных в Virtual PC.
START /?
указывает, что параметры действительно находятся в этом месте. Кто-нибудь использовал START для запуска программы с несколькими аргументами командной строки?
Ответы
Ответ 1
У START есть особенность, связанная с двойными кавычками вокруг первого параметра. Если первый параметр имеет двойные кавычки, он использует это как дополнительный TITLE для нового окна.
Я считаю, что вы хотите:
start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch
Другими словами, дайте ему пустой заголовок перед именем программы, чтобы подделать его.
Ответ 2
Вместо пакетного файла вы можете создать ярлык на рабочем столе.
Задайте цель:
"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
и вы все настроены. Поскольку вы не запускаете командную строку для ее запуска, не будет DOS-бокса.
Ответ 3
Пространства представляют собой проблемы DOS/CMDs, поэтому вы должны перейти на Путь через:
cd "c:\program files\Microsoft Virtual PC"
а затем просто запустите VPC через:
start Virtual~1.exe -pc MY-PC -launch
~1
означает первый exe
с "Virtual"
в начале. Поэтому, если есть "Virtual PC.exe"
и a "Virtual PC1.exe"
, первым будет Virtual~1.exe
и второй Virtual~2.exe
и т.д.
Или используйте VNC-клиент, например VirtualBox.
Ответ 4
Вы можете использовать кавычки, используя [ /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
Ответ 5
Ответ в "особенности" правильный и прямо отвечает на вопрос. Как ответил TimF, поскольку первый параметр находится в кавычках, он рассматривается как заголовок окна.
Также обратите внимание, что параметры виртуального ПК рассматриваются как параметры для самой команды "start" и недействительны для "start" . Это справедливо для всех версий Windows, которые имеют команду "start" .
Эта проблема с "началом" обработки цитируемого параметра в качестве заголовка еще более раздражает, что только что опубликованная проблема. Если вы запустите это:
start "some valid command with spaces"
Появится новое окно командной строки с очевидным результатом для заголовка окна.
Еще более раздражает, это новое окно не наследует настраиваемые шрифты, цвета или размер окна, это просто значение по умолчанию для cmd.exe.
Ответ 6
Если вы должны использовать двойную кавычку по любому параметру, вы можете получить ошибку "c:\somepath" не распознается внутренней или внешней командой, оперативной программой или командным файлом ".
Я предлагаю ниже решение при использовании двойной метки qoutation:
fooobar.com/questions/36090/...
Ответ 7
Ни один из этих ответов не работал для меня.
Вместо этого мне пришлось использовать команду Call:
Call "\\Path To Program\Program.exe" <parameters>
Я не уверен, что это на самом деле ждет завершения... Распространяемый C++, который я устанавливал, прошел достаточно быстро, чтобы это не имело значения
Ответ 8
Если вы хотите передать параметр и ваш .exe файл в тестовую папку c: drive
start "parameter" "C:\test\test1.exe" -pc My Name-PC -launch
Если вам не нужно передавать параметр и ваш .exe файл в тестовую папку c: drive
start "" "C:\test\test1.exe" -pc My Name-PC -launch
Если вам не нужно передавать параметр и ваш .exe файл в тестовую папку диска H: (Any Other)
start "" "H:\test\test1.exe" -pc My Name-PC -launch
Ответ 9
"/b" параметр
start /b "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
Ответ 10
Измените "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 секунды и выйдет.
Ответ 11
Вы пробовали:
start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" "-pc MY-PC -launch"
?
Ответ 12
Поместите команду в пакетный файл и вызовите это с параметрами.
Кроме того, вы еще это пробовали? (Переместить конечную цитату для инкапсуляции параметров)
start "c:\program files\Microsoft Virtual PC\Virtual PC.exe -pc MY-PC -launch"