You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本大小写敏感初始化问题:字母转数字无法区分大小写

解决批处理脚本大小写不敏感的字母转数字问题

问题根源

批处理的环境变量名不区分大小写,你定义的A=1和a=2实际上是同一个变量,后续的a=2会覆盖前面的A=1,导致无论输入大写还是小写的A,取到的值都是2,所以输入"Aa"时输出"22"。

解决方案一:基于ASCII码计算(推荐,适配你的映射规则)

利用大小写字母的ASCII码范围(大写A-Z为65-90,小写a-z为97-122),结合你需要的A=1,a=2,B=3,b=4...映射规则,直接计算对应数字:

@ECHO OFF
setlocal enabledelayedexpansion
set "nickname= "
set /P "nickname=Enter here: "
set "nickname=%nickname: =%"
if not defined nickname goto :EOF
set "out="
set "nums="
set "sum=0"
:loop
   set "char=!nickname:~0,1!"
   set "out=!out!!char!"
   :: 获取字符的ASCII码值
   set /A "ascii=!char!"
   :: 处理大写字母:A(65)→1,B(66)→3...公式:(ASCII-64)*2-1
   if !ascii! geq 65 if !ascii! leq 90 (
       set /A "code=(!ascii!-64)*2-1, sum+=code"
   )
   :: 处理小写字母:a(97)→2,b(98)→4...公式:(ASCII-96)*2
   if !ascii! geq 97 if !ascii! leq 122 (
       set /A "code=(!ascii!-96)*2, sum+=code"
   )
   set "nums=!nums!!code!"
set "nickname=!nickname:~1!"
IF DEFINED nickname GOTO :loop
ECHO original: %out%
ECHO converted to: %nums%
pause
endlocal

解决方案二:自定义映射表(适合非顺序映射)

如果后续需要调整映射规则,可以用自定义映射表,通过精确匹配字符来获取对应值:

@ECHO OFF
setlocal enabledelayedexpansion
:: 自定义大小写映射表,格式:字符|数字,多个用逗号分隔
set "map=A|1,a|2,B|3,b|4,C|5,c|6"
set "nickname= "
set /P "nickname=Enter here: "
set "nickname=%nickname: =%"
if not defined nickname goto :EOF
set "out="
set "nums="
set "sum=0"
:loop
   set "char=!nickname:~0,1!"
   set "out=!out!!char!"
   set "code="
   :: 遍历映射表匹配当前字符(大小写敏感)
   for %%i in ("!map:,=" "!") do (
       echo %%~i | findstr /R /C:"^!char!|.*$" >nul
       if not errorlevel 1 (
           for /F "tokens=2 delims=|" %%b in ("%%~i") do (
               set "code=%%b"
               set /A sum+=code
           )
       )
   )
   set "nums=!nums!!code!"
set "nickname=!nickname:~1!"
IF DEFINED nickname GOTO :loop
ECHO original: %out%
ECHO converted to: %nums%
pause
endlocal

关键说明

  • 启用enabledelayedexpansion是为了在循环中动态获取和更新变量值,用!变量名!代替%变量名%。
  • 方案一的公式完全适配你给出的映射规则,若后续规则变化,只需调整公式即可。
  • 方案二的映射表可以自由扩展,添加更多字符和数字的对应关系。

内容的提问来源于stack exchange,提问作者Kenneth aka ComKat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:00:00