[CMD] Операторы выбора в командной строке Windows

Переделал

CMD/BATCH:
@echo off
cls
color e1
echo *********************************************************
echo.
echo               IPconfig - выбор опций
echo.
echo *********************************************************
echo.
echo 1  -  /all           -  Вывод подробных сведений о конфигурации.
echo.
echo 2  -  /release       -  Освобождение адреса IPv4 для указанного адаптера.
echo.
echo 3  -  /release6      -  Освобождение адреса IPv6 для указанного адаптера.
echo.
echo 4  -  /renew         -  Обновление адреса IPv4 для указанного адаптера.
echo.
echo 5  -  /renew6        -  Обновление адреса IPv6 для указанного адаптера.
echo.
echo 6  -  /flushdns      -  Очистка кэша сопоставителя DNS.
echo.
echo 7  -  /registerdns   -  Обновление всех DHCP-аренд и перерегистрация DNS-имен
echo.
echo 8  -  /displaydns    -  Отображение содержимого кэша сопоставителя DNS.
echo.
echo 9  -  /showclassid   -  Отображение всех допустимых для этого адаптера
echo                         идентификаторов классов DHCP.
echo.
echo 10 -  /showclassid6  -  Отображение всех допустимых для этого адаптера
echo                         идентификаторов классов DHCP IPv6.
echo.
echo 11 -  /setclassid6   -  Изменение идентификатора класса DHCP IPv6.
echo.
echo 12 -  /allcompartments         -  Отображение сведений обо всех
echo                                    секциях
echo.
echo 13  -  /allcompartments /all   -   Отображение подробных сведений обо
echo                                    всех секциях
echo.
echo. *********************************************************
echo.
set /p path="Введите путь к каталогу для сохранения вывода команды в файл: "
echo.
:: установим пустое значение переменной
set mymenu=
echo.
:: Интерактивный ввод значения переменной
set /p mymenu="Введите номер опции: "
echo.
cls
:: ключ /i, если он указан, задает
:: сравнение текстовых строк без учета регистра.
:: Ключ /i можно также использовать и
:: в форме строка1==строка2 команды IF.
:: Сравнения проводятся по общему типу данных,
:: так что если строки 1 и 2 содержат только цифры,
:: то обе строки преобразуются в числа, после чего
:: выполняется сравнение чисел.
if /i %mymenu%==1 goto 1
if /i %mymenu%==2 goto 2
if /i %mymenu%==3 goto 3
if /i %mymenu%==4 goto 4
if /i %mymenu%==5 goto 5
if /i %mymenu%==6 goto 6
if /i %mymenu%==7 goto 7
if /i %mymenu%==8 goto 8
if /i %mymenu%==9 goto 9
if /i %mymenu%==10 goto 10
if /i %mymenu%==11 goto 11
if /i %mymenu%==12 goto 12
if /i %mymenu%==13 goto 13

Goto End

:: Установим переменную для хранения расположения каталога утилиты

set sys_path="c:\Windows\System32"

:13
cls
%sys_path%\ipconfig /allcompartments /all > %path%\all-detail.txt
Goto End


:12
cls
%sys_path%\ipconfig /allcompartments > %path%\all-compartments.txt
Goto End

:11
cls
%sys_path%\ipconfig /setclassid6
Goto End


:10
cls
%sys_path%\ipconfig /showclassid6 > %path%\showclassid-v6.txt
Goto End


:9
cls
%sys_path%\ipconfig /showclassid > %path%\showclassid-v4.txt
Goto End

:8
cls
%sys_path%\ipconfig /displaydns > %path%\displaydns.txt
Goto End

:7
cls
%sys_path%\ipconfig /registerdns > %path%\registerdns.txt
Goto End

:6
cls
%sys_path%\ipconfig /flushdns > %path%\flushdns.txt
Goto End


:5
cls
%sys_path%\ipconfig /renew6 > %path%\renew-v6.txt
Goto End

:4
cls
%sys_path%/ipconfig /renew > %path%\renew-v4.txt
Goto End

:3
cls
%sys_path%\ipconfig /release6 > %path%\release-v6.txt
Goto End


:2
cls
%sys_path%\ipconfig /release > %path%\release-v4.txt
Goto End

:1
cls
%sys_path%/ipconfig /all > %path%/all.txt
Goto End

: End
COLOR
 
Код:
if /i %mymenu%==1 goto 1
if /i %mymenu%==2 goto 2
if /i %mymenu%==3 goto 3
if /i %mymenu%==4 goto 4
if /i %mymenu%==5 goto 5
if /i %mymenu%==6 goto 6
if /i %mymenu%==7 goto 7
if /i %mymenu%==8 goto 8
if /i %mymenu%==9 goto 9
if /i %mymenu%==10 goto 10
if /i %mymenu%==11 goto 11
if /i %mymenu%==12 goto 12
if /i %mymenu%==13 goto 13
Можно короче:
Код:
goto %mymenu%
 
Назад
Сверху Снизу