昨天花了点时间整理下,做了个 批处理字符计算,里面附了关于这方面的知识,方便以后的新手查看使用
可以分析出多少个:
* 中文字
* 英文字
* 数字(全角+半角)
* 空格与符号(全角+半角)
代码:- @echo off
- setlocal enabledelayedexpansion
- title 批处理 字符计算 最终版 [Raymai97作品]
- color 0f
- mode con cols=80 lines=25
- :menu
- set sel=&cls
- echo,
- echo, // 批处理 字符计算 最终版【支持英文、中文、数字、符号】 by Raymai97 //
- echo,
- echo, 请选择:
- echo,
- echo, 1 小麦(raymai97)在这方面研究所得的珍藏知识
- echo,
- echo, 2 使用 批处理字符计算器 【小麦原创】
- echo,
- echo, 3 批处理论坛 bbs.bathome.net
- echo,
- echo, Q 退出
- echo,
- set /p sel=^>
- if "!sel!"=="1" goto maidata
- if "!sel!"=="2" goto textcalc
- if "!sel!"=="3" start "" "http://bbs.bathome.net/"
- if "!sel!"=="Q" exit
- goto menu
- :maidata
- set sel=&cls
- echo,
- echo, // 妙用if,区别并计算字符 //
- echo,
- echo, set a=(某一个字符)
- echo,
- echo, 当 %%a%% lss "a" 就是 全角 或 半角 的 符号、空格 或 数字 else 就是 英文字
- echo,
- echo, 当 %%a%% gtr "Z" 就是 中文字
- echo,
- echo, 当 %%a%% lss "0" 就是 全角 或 半角 的 符号、空格 else 就是 全角 或 半角 的 数字
- echo,
- echo, 以上为批处理检测的思路,可能有点复杂,简单点的分析:
- echo,
- echo, a-Z = 英文字 // 注意 //
- echo,
- echo, 多过 Z = 中文字 / 批处理必须一个一个分析 /
- echo,
- echo, 0-9 = 全角 或 半角 的数字
- echo,
- echo, 少过 0 = 全角 或 半角 的符号、空格
- echo, --------------------------------------------------------------------------
- echo, 1 如果要区别 全角 和 半角 的符号、数字 和 空格 2 返回主菜单
- echo,
- set /p sel=^>
- if "!sel!"=="1" goto maidata2
- if "!sel!"=="2" goto menu
- goto maidata
- :maidata2
- set sel=&cls
- echo,
- echo, // 如果要区别 全角 和 半角 的符号、数字 和 空格 //
- echo,
- echo, 请看看这段东西:
- echo,
- echo, if "1" gtr "1" (echo yes) else (echo no)
- echo, yes
- echo, if "1" gtr "2" (echo yes) else (echo no)
- echo, no
- echo, if "," gtr "2" (echo yes) else (echo no)
- echo, no
- echo,
- echo, 这段东西是我在cmd里测试得到的东西(已echo off),从上面可以看出:
- echo,
- echo, 全角的1大过 半角的 1 但 小过 半角的 2
- echo,
- echo, 全角的,大过 半角的 , 但 小过 半角的 2
- echo,
- echo, 看到这里,不用我多说,你也大概能猜出要如何区别,并感到失望
- echo,
- echo, --------------------------------------------------------------------------
- echo, 1 返回主菜单
- echo,
- set /p sel=^>
- if "!sel!"=="1" goto menu
- goto maidata2
- :textcalc
- cls
- set text=
- set /a len=0,sym=0,en=0,ch=0,num=0
- echo, // 批处理字符计算器 12月12日完成 by Raymai97 //
- echo,
- set /p text=请输入:
- echo,
- echo, // 计算中 //
- if "!text!"=="" goto result
- :loop
- if "!text:~%len%!"=="" goto result
- if "!text:~%len%,1!" gtr "Z" (set /a ch+=1) else (
- if "!text:~%len%,1!" geq "a" (set /a en+=1) else (
- if "!text:~%len%,1!" lss "0" (set /a sym+=1) else (
- set /a num+=1)))
- set /a len+=1
- goto loop
- :result
- echo,
- echo, // 结果 //
- echo,
- echo, 全角/半角英文字:!en! 中文字:!ch!
- echo,
- echo, 全角/半角数字: !num! 全角/半角符号或空格:!sym!
- echo,
- echo, 总计:!len!
- echo,
- echo, // 任意键继续 //
- pause>nul
- goto textcalc
复制代码
|