Obter escolha convertida em alfabeto em lote

0

Eu quero que o usuário escolha um alfabeto

CHOICE /C A-Z /D D /T 3 /M "Choose an alphabet: "

Existe uma maneira de evitar escrever todo o A-Z e depois

IF %ERRORLEVEL% EQU 1 SET CHOICE=A
IF %ERRORLEVEL% EQU 2 SET CHOICE=B
...

escreve todas as condições if para recuperar a escolha como o alfabeto de %ERRORLEVEL% ?

    
por laggingreflex 22.09.2014 / 10:17

1 resposta

1

Existe uma maneira em que você só precisa escrever o alfabeto uma vez ao definir uma variável. Um caractere extra é necessário no início, porque a primeira opção CHOICE é atribuída 1, mas o primeiro caractere em uma sequência de variáveis é atribuído ao índice 0 ao executar operações de substring.

@echo off
setlocal enableDelayedExpansion
set "choices= ABCDEFGHIJKLMNOPQRSTUVWXYZ"
choice /c %choices:~1% /d D /t 3 /m "Choose a letter: "
set "choice=!choices:~%errorlevel%,1!"
echo you pressed %choice%
    
por 22.09.2014 / 11:19

Tags