Использование команды “Пуск” с параметрами, переданными запущенной программе

StackOverflow https://stackoverflow.com/questions/154075

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

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

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

Это было полезно?

Решение

У 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 не будет.

Пробелы являются проблемами DOSs / CMDs, поэтому вы должны перейти к Пути через:

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.

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

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

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

start "some valid command with spaces"

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

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

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

-Мистер Биос

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

Вместо этого мне пришлось использовать команду 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:(Любой другой)диск

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

параметр "/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"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top