PDA

Показать полную графическую версию : [решено] Как выбрать нужный вариант при нажатии какой-либо цифры


RazdoR
22-08-2012, 10:13
Есть примерно вот такой код


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
при нажатии какой-либо цифры 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
gora, метки не самый красивый вариант. А если всё подставить в условия? Мне кажется разруливается легко и уж намного легче чем эти метки.

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

yurfed
22-08-2012, 13:12
if "%num%"=="1" goto komp1 »Может вложенные "then" и "else" использовать? (если имеется такая фича)

RazdoR
22-08-2012, 14:56
за подсказку спасибо) попробую
конечно можно, но.. »
но как? я не понял, как в батнике юзать if... then

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

gora
22-08-2012, 15:06
но как? я не понял, как в батнике юзать 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 /?




© OSzone.net 2001-2012