PDA

Показать полную графическую версию : [решено] Запуск программы с разными параметрами


root221
25-01-2012, 14:46
Здравствуйте, пришол к вам за помощью.... Т.к долго не занимался скрипто писанием, многое позабыл и поэтому прошу вас, если вам не сложно набросать мне батник тогда поехали...

Запускаю батник, выводится список, например мне из этого списка надо только одна функция программы

ну например, нажимаю 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 ярлыков на раб. столе, хочу увидеть сие творение в Маленьком батнике.)

El Sanchez
25-01-2012, 17:25
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"


upd:
Доработал вывод меню, а то при количестве пунктов больше 100 были бы приколы

root221
25-01-2012, 23:33
Если не трудно, переделай, что бы в консоли маргал только курсор а параметры видны небыли.
Сам выберу по памяти эти параметры, просто слишком большой список получается...

в консоли вид , желательно такой

Выберите параметр: _

El Sanchez
26-01-2012, 09:28
что бы в консоли маргал только курсор а параметры видны небыли »
root221, удалить\закомментировать строки:

For /F %%A In ('Set _') Do Set /A Cnt+=1
For /L %%A In (1,1,%Cnt%) Do Call Echo %%A. %%_%%A:*;=%%
Echo:

Либо батник можно упростить:

@Echo Off
SetLocal
Rem _Number=Parameters
Set _1=%WinDir%\setuplog.txt
Set _2=%WinDir%\setupact.log

Set /P "i=Выберите параметр: "
If Defined _%i% Call Start "" "Notepad" "%%_%i%%%"

root221
02-02-2012, 17:24
ПОМОГИТЕ)



@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
)



В общем мне нужно сделать что бы можно было ввести Test и выполнялся Test.vbs

В данном примере у меня он просто через Else. - то есть если просто не ввести ничего и нажать Ввод то выполнится Test.vbs а если ввести команду 1 то выполнится

program.exe -s beggin 123456789

Anonymоus
02-02-2012, 19:03
@Echo Off
SetLocal
Rem _Number=Parameters
Set _1=%WinDir%\setuplog.txt
Set _2=%WinDir%\setupact.log

:EOM
Set i=
Set /P "i=Выберите параметр: "
If /I %i%==test (test.vbs&Cls&GoTo :EOM)
If Defined _%i% (Call Start "" "Notepad" "%%_%i%%%") Else (Cls&GoTo :EOM)


Отредактировал пост, сделал так, как вам нужно. Если ввести test - выполнится test.vbs и произойдет возврат к выбору пункта, если ввести нужный номер - запустится программа с этими параметрами, если ввести неправильный номер - снова возврат к выбору пункта.

root221
02-02-2012, 19:16
Anonymоus, свой пост отредактировал пока вы отвечали(((....

В общем нужно то что сейчас написано в 5 посту.

root221
02-02-2012, 19:51
Спасибо, я знал что вы мне сможете помочь.

Если не трудно, добавьте ещё, что бы если просто ничего не введёшь и нажмёшь, то что бы писало через cls, вы не ввели ничего и возврат на GoTo :EOM.

Anonymоus
02-02-2012, 19:58
Сделано.

@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)




© OSzone.net 2001-2012