Вот как можно создать такое меню в скрипте с помощью TCC/LE от JP Software:
@echo off
:: pill.btm
text
Do you want to root your Nexus 5?
-----------------------------------------
Y. Red Pill......
----------------------------------------
or
N. Blue Pill......
----------------------------------------
endtext
inkey /k"YNRB" ` `Red Pill or Blue Pill?:` ` %%root
switch "%root%"
case "Y" .OR. "R"
call root\run
case "N" .OR. "B"
exit
endswitch
Параметр /k
для inkey
ограничивает то, какие нажатия клавиш являются даже допустимыми, устраняя необходимость повторения и печати дополнительных подсказок, если задан неправильный выбор. Команда switch
выполняет сравнение без учета регистра, а также поддерживает .OR.
,
Конечно, TCC (и его предшественники) всегда облегчали представление гораздо лучших пользовательских интерфейсов из командных сценариев. Вот улучшенная версия вышеупомянутого:
@echo off
:: pill.btm
cls white on blue
drawbox 1 10 6 70 2 green on black fill zoom shadow
drawhline 3 12 57 1 green on black
scrput 2 24 white on black Do you want to root your Nexus 5?
scrput 4 34 red on black Y. Red Pill
scrput 5 34 blue on black N. Blue Pill
drawbox 10 39 12 41 2 green on black fill shadow
screen 11 40
inkey /k"YNRB" %%root
switch "%root%"
case "Y" .OR. "R"
cls white on black
scrput 4 34 red on black Y. Red Pill
screen 11 0
call root\run
case "N" .OR. "B"
cls white on black
scrput 5 34 blue on black N. Blue Pill
screen 11 0
exit
endswitch
Это всего на 1 строку длиннее, но имеет немало улучшений, не последним из которых является отображение выбранной "таблетки" в цвете.
Однако нет причин, по которым командный сценарий в Windows должен иметь текстовый интерфейс пользователя. TCC также может сделать графическую версию, которая является всего лишь 3-мя строками:
@echo off
msgbox /2 /q continueabort "Red pill, blue pill" About to root your Nexus 5
if %_? == 15 call root\run
Обратите внимание на использование call
, кстати. Это ошибка в techie007
. ☺
И это было более 25 лет. Нам не нужно использовать расширение command
.bat
. Microsoft cmd
использует .cmd
начиная с OS/2 версии 1. Вы заметите, что я использовал выше .btm
TCC/LE - привычка, накапливаемая при написании скриптов .btm
которые будут работать с 4NT, 4DOS и 4OS2.
дальнейшее чтение