|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запуск программы с разными параметрами |
|
CMD/BAT - [решено] Запуск программы с разными параметрами
|
![]() Старожил Сообщения: 177 |
Здравствуйте, пришол к вам за помощью.... Т.к долго не занимался скрипто писанием, многое позабыл и поэтому прошу вас, если вам не сложно набросать мне батник тогда поехали...
Запускаю батник, выводится список, например мне из этого списка надо только одна функция программы ну например, нажимаю 1, запускается программа с параметром, который числится под номером 1, это у нас будет (Fish.exe Fish1) Например: Список вывелся, № 1 Fish1 <внутри батника тут будет параметр Fish1> № 2 Fish2 <внутри батника тут будет параметр Fish2> № 3 Fish3 <внутри батника тут будет параметр Fish3> И я хочу запустить программу с предложенными мне функциями: и я выбираю параметр под номером № 2 и запускается программа Fish.exe с параметром Fish2, то есть, если я запускаю с помощью ярлыка, то это будет выглядеть так (Fish.exe Fish2) далее если я выбираю параметр 3, то программа должна будет запуститься так (Fish.exe Fish3) (Параметров очень много, поэтому, что бы не создавать 100 ярлыков на раб. столе, хочу увидеть сие творение в Маленьком батнике.) |
|
Отправлено: 14:46, 25-01-2012 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать root221, на примере Notepad
@Echo Off SetLocal Rem _Number=Parameters;Description Set _1=%WinDir%\setuplog.txt;Открыть setuplog.txt Set _2=%WinDir%\setupact.log;Открыть setupact.log For /F %%A In ('Set _') Do Set /A Cnt+=1 For /L %%A In (1,1,%Cnt%) Do Call Echo %%A. %%_%%A:*;=%% Echo: Set /P "i=Выберите пункт меню: " If Defined _%i% For /F "Tokens=2 Delims==;" %%A In ('Set _%i%') Do Start "" "Notepad" "%%~A" Доработал вывод меню, а то при количестве пунктов больше 100 были бы приколы |
Последний раз редактировалось El Sanchez, 25-01-2012 в 21:02. Причина: доработка Отправлено: 17:25, 25-01-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 177
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:33, 25-01-2012 | #3 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать Цитата root221:
For /F %%A In ('Set _') Do Set /A Cnt+=1 For /L %%A In (1,1,%Cnt%) Do Call Echo %%A. %%_%%A:*;=%% Echo: |
|
Последний раз редактировалось El Sanchez, 26-01-2012 в 09:38. Отправлено: 09:28, 26-01-2012 | #4 |
![]() Старожил Сообщения: 177
|
Профиль | Отправить PM | Цитировать ПОМОГИТЕ)
@echo off :eom Set _1=123456789 Set /P "i= ‚ўҐ¤ЁвҐ *®¬Ґа Є®¬ЇмовҐа*: " If Defined _%i% ( Call program.exe -s beggin"" "%%_%i%%%" > nul Endlocal goto EOM ) else ( Test.vbs goto EOM ) В данном примере у меня он просто через Else. - то есть если просто не ввести ничего и нажать Ввод то выполнится Test.vbs а если ввести команду 1 то выполнится |
|
Последний раз редактировалось root221, 02-02-2012 в 19:11. Отправлено: 17:24, 02-02-2012 | #5 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать
Отредактировал пост, сделал так, как вам нужно. Если ввести test - выполнится test.vbs и произойдет возврат к выбору пункта, если ввести нужный номер - запустится программа с этими параметрами, если ввести неправильный номер - снова возврат к выбору пункта.
|
Последний раз редактировалось Anonymоus, 02-02-2012 в 19:51. Отправлено: 19:03, 02-02-2012 | #6 |
![]() Старожил Сообщения: 177
|
Профиль | Отправить PM | Цитировать Anonymоus, свой пост отредактировал пока вы отвечали(((....
В общем нужно то что сейчас написано в 5 посту. |
Отправлено: 19:16, 02-02-2012 | #7 |
![]() Старожил Сообщения: 177
|
Профиль | Отправить PM | Цитировать Спасибо, я знал что вы мне сможете помочь.
Если не трудно, добавьте ещё, что бы если просто ничего не введёшь и нажмёшь, то что бы писало через cls, вы не ввели ничего и возврат на GoTo :EOM. |
Отправлено: 19:51, 02-02-2012 | #8 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Сделано.
@Echo Off SetLocal Rem _Number=Parameters Set _1=%WinDir%\setuplog.txt Set _2=%WinDir%\setupact.log :EOM Set i= Set /P "i=Выберите параметр: " If "%i%"=="" Cls&Echo Вы ничего не ввели.&GoTo :EOM If /I %i%==test (test.vbs&Cls&GoTo :EOM) If Defined _%i% (Call Start "" "Notepad" "%%_%i%%%") Else (Cls&GoTo :EOM) |
Отправлено: 19:58, 02-02-2012 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Запуск программы с параметрами | Rulezzz2 | AutoIt | 8 | 31-03-2013 05:16 | |
Прочее - Включение локального соединения с разными параметрами IP, Mask... | Ledax | Сетевые технологии | 2 | 18-11-2010 17:40 | |
WMI - [решено] Запуск .BAT файла с параметрами через WMI | Glamorama | Скриптовые языки администрирования Windows | 3 | 07-10-2009 11:12 | |
[решено] Запуск EXE c параметрами ( test.exe -123 -abc ) | FlatX007 | AutoIt | 2 | 22-06-2009 16:47 |
|