如何在选择命令中输入扩展 ASCII 作为默认值 /d - 批处理文件

问题描述

我正在创建一个需要倒计时的程序。我使用带有 /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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...