Компьютерный форум 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=241103)

RazdoR 22-08-2012 10:13 1974499

Как выбрать нужный вариант при нажатии какой-либо цифры
 
Есть примерно вот такой код
Код:


set /p ip=vvedite nomer:

set /p num=komp: 1 - komp1  2-komp2 3 - komp3

if num == 1 goto komp1
:komp1
netsh interface ip set address name="Local" static 192.168.%ip%.51 255.255.255.0 192.168.%ip%.50 0

if num == 2 goto komp2
:komp2
netsh interface ip set address name="Local" static 192.168.%ip%.51 255.255.255.0 192.168.%ip%.50 0

if num == 3 goto komp3
:komp3
netsh interface ip set address name="Local" static 192.168.%ip%.51 255.255.255.0 192.168.%ip%.50 0

как сделать выбор, чтобы при нажатии какой-либо цифры num получал значение и в соответствии с ним происходил выбор определенного варианта работы?
В таком виде выдается ошибка "Непредвиденное появление: =."

gora 22-08-2012 12:50 1974614

Цитата:

Цитата RazdoR
при нажатии какой-либо цифры num получал значение и в соответствии с ним происходил выбор определенного варианта работы? »

Код:

@echo off

set /p ip=vvedite nomer:

set /p num=komp: 1 - komp1  2-komp2 3 - komp3

if "%num%"=="1" goto komp1
if "%num%"=="2" goto komp2
if "%num%"=="3" goto komp3

Echo num=%num%        NO goto...
pause>nul
Exit


:komp1
Echo num=%num%        goto komp1
pause>nul
Exit


:komp2
Echo num=%num%        goto komp2
pause>nul
Exit


:komp3
Echo num=%num%        goto komp3
pause>nul
Exit


yurfed 22-08-2012 13:00 1974618

gora, метки не самый красивый вариант. А если всё подставить в условия? Мне кажется разруливается легко и уж намного легче чем эти метки.

gora 22-08-2012 13:12 1974620

yurfed, конечно можно, но... Исходя из ошибок, допущенных топикстартером, я показал как правильно записывается условие и что переход на метку должен чем-то кончаться, а не "перетекать" в следующую метку. Начинающему, наверное, так будет понятнее.

yurfed 22-08-2012 13:12 1974622

Цитата:

Цитата gora
if "%num%"=="1" goto komp1 »

Может вложенные "then" и "else" использовать? (если имеется такая фича)

RazdoR 22-08-2012 14:56 1974670

за подсказку спасибо) попробую
Цитата:

Цитата gora
конечно можно, но.. »

но как? я не понял, как в батнике юзать if... then

Цитата:

Цитата yurfed
(если имеется такая фича) »

если есть, то я так и не сообразил как их тут использовать(

gora 22-08-2012 15:06 1974679

Цитата:

Цитата RazdoR
но как? я не понял, как в батнике юзать if... »

Код:

@echo off
set /p num=komp: 1 - komp1  2-komp2 3 - komp3

if "%num%"=="1" (
        Echo num=%num%        action 1
        pause>nul
        Exit

)
if "%num%"=="2" (
        Echo num=%num%        action 2
        pause>nul
        Exit

)
if "%num%"=="3" (
        Echo num=%num%        action 3
        pause>nul
        Exit

)

Echo num=%num%        NO action
pause>nul
Exit

Подробности в справке к команде If /?


Время: 14:48.

Время: 14:48.
© OSzone.net 2001-