问题描述
我正在创建一个需要倒计时的程序。我使用带有 /t 1 和 /d 的选择命令来做到这一点,还需要检查用户是否按下了键盘上的任何按钮。
我在这里遇到了一个问题,因为我无法将任何非键盘字符传递给 /d .. 所以有人可以从我的 allchoices 字符串中按下字符,它会停止倒计时。
据我所知 - 选择命令可以对 a-z、A-Z、0-9 和 128 到 254 的 ASCII 值进行操作,但是当我输入像 128 (Ç) 这样的 ascii 时,我得到错误:语法无效。 /D 只接受单个字符。
那么我该如何解决这个问题?
这是我的代码的一部分:
set /a time = 20
set "if_1=8"
set "if_2=10"
set "if_3=12"
set "allchoices=123456789abcdefghijklmnopqrstuvwxyz"
:loop
cls
echo press 1 for %if_1% Threads
echo press 2 for %if_2% Threads
echo press 3 for %if_3% Threads
echo press any other number key to exit
echo.
echo Countdown - [%time%]
if %time%==0 goto launch
choice /t 1 /c %allchoices% /d z >nul
if %errorlevel% EQU 35 goto dec
if %errorlevel% EQU 1 goto 1
if %errorlevel% EQU 2 goto 2
if %errorlevel% EQU 3 goto 3
if %errorlevel% GEQ 4 goto end
:dec
set /a time = %time%-1
goto loop
这就是我要说的:
set "allchoices=123456789abcdefghijklmnopqrstuvwxyzÇ"
choice /t 1 /c %allchoices% /d Ç >nul
if %errorlevel% EQU 36 goto dec
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)