Використовуючи команду "start" з параметрами, переданими до запущеної програми


223

У мене віртуальна машина у 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

Але він задавлюється параметрами, переданими у віртуальний ПК.

START /?вказує, що параметри дійсно йдуть у цьому місці. Хтось використовував START для запуску програми з кількома аргументами командного рядка?

Відповіді:


466

START має особливість, що включає подвійні лапки навколо першого параметра. Якщо перший параметр має подвійні лапки, він використовує це як необов'язковий НАЗВАННЯ для нового вікна.

Я вірю, що ти хочеш:

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

Іншими словами, дайте йому порожню назву перед назвою програми, щоб підробити її.


2
Це застаріле? У програмі Win 7 я отримуюStart-Process : Cannot validate argument on parameter 'FilePath'. The argument is null or empty. Supply an argument that is not null or empty and then try the command again
геотеорія

1
Хто б міг собі уявити. Саме кількість відгуків на вашу відповідь має стати достатньою причиною для Microsoft, щоб виправити цю «особливість».
Піюш Соні

7
@geotheory Я розумію, що це старий коментар, але в PowerShell, start - псевдонім для Start-Process. У cmd.exe (трохи застарілий, але не застарілий) "start" відрізняється. Вони обидва призначені для запуску інших процесів, але start - це стара вбудована команда в cmd.
Адам Плочер

Це викликало у мене сильний головний біль. Дякую за рішення!
uceumern

15

Замість пакетного файлу ви можете створити ярлик на робочому столі.

Встановіть ціль:

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

і ти все налаштований. Оскільки ви не запускаєте командний рядок для його запуску, DOS Box не буде.


3

Пробіли - це проблеми 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.


1
Це виглядає як розумне вирішення проблем, але воно насправді не вирішує основну проблему, яку охоплює прийнята відповідь.
Сем

1
це не працюватиме, якщо короткі імена файлів не ввімкнено. Я завжди відключаю 8,3 імені файлів у своїх системах
phuclv

1

Жодна з цих відповідей не працювала для мене.

Натомість мені довелося використовувати команду Call:

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

Я не впевнений, що це насправді чекає завершення ... Перерозподільний C ++, який я встановлював, пройшов досить швидко, що це не мало значення


@rene дякую за редагування Якщо я додам більше відповідей, я обов'язково використовую формат блоку коду
JustAbodyMikhail

0

Відповідь у "особливості" правильна і безпосередньо відповідає на питання. Як відповів TimF, оскільки перший параметр є в лапках, він розглядається як заголовок вікна.

Також зауважте, що параметри віртуального ПК розглядаються як варіанти самої команди "пуск" і не є дійсними для "запуску". Це справедливо для всіх версій Windows, у яких є команда 'start'.

Ця проблема із "запуском" трактує цитований параметр як заголовок, ще більше дратує, що лише розміщена проблема. Якщо ви запускаєте це:

start "some valid command with spaces"

Ви отримуєте нове вікно командного рядка з очевидним результатом для заголовка вікна. Ще більше дратує, що це нове вікно не успадковує індивідуальний шрифт, кольори чи розмір вікна, це лише типовий для cmd.exe.


0

Якщо ви хочете передати параметр і ваш .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: (Будь-який інший)

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


0

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


0

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

-Мрбіос


-1

/b параметр

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

Що робить цей параметр?
Azeeza M

3
@AzeezahM / b означає, що нове вікно cmd не відкриється. Однак це не відповідає на питання ОП.
aclave1


-4

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

Також ви це ще пробували? (Перемістити кінцеву цитату для інкапсуляції параметрів)

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

-4

Змініть "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 секунди та вийде.


1
Що станеться, якщо програмне забезпечення оновлюється? Раптом у вас з’явився сирота virtualpc.exe.
Майкл Бек
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.