Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Запуск программы с разными параметрами (http://forum.oszone.net/showthread.php?t=226205)

root221 25-01-2012 14:46 1844203

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

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

ну например, нажимаю 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 1844310

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 1844544

Если не трудно, переделай, что бы в консоли маргал только курсор а параметры видны небыли.
Сам выберу по памяти эти параметры, просто слишком большой список получается...

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

Код:

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

El Sanchez 26-01-2012 09:28 1844697

Цитата:

Цитата root221
что бы в консоли маргал только курсор а параметры видны небыли »

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 1850183

ПОМОГИТЕ)

Код:


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

Код:

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

Anonymоus, свой пост отредактировал пока вы отвечали(((....

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

root221 02-02-2012 19:51 1850295

Спасибо, я знал что вы мне сможете помочь.

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

Anonymоus 02-02-2012 19:58 1850302

Сделано.
Код:

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



Время: 02:17.

Время: 02:17.
© OSzone.net 2001-