批量将选择转换为字母

批量将选择转换为字母

我希望用户选择一个字母

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

有没有办法避免写入所有的 AZ 然后

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

写下所有的 if 条件,以便将选择返回为字母表%ERRORLEVEL%

答案1

有一种方法,您只需在设置变量时写出一次字母表。开头需要一个额外的字符,因为第一个 CHOICE 选项被分配为 1,但在执行子字符串操作时,变量字符串中的第一个字符被分配索引 0。

@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%

相关内容