标题: [文件操作] [已解决]批处理如何检测输入的中英文字符串? [打印本页]
作者: jorlaying 时间: 2022-12-24 12:03 标题: [已解决]批处理如何检测输入的中英文字符串?
- @echo off
- set /p str=请输入:
- for /f "delims=" %%i in ('echo %str%^|findstr "[a-zA-Z0-9]"') do set var=%%i
- if defined var (
- echo 这是英文
- set t=EN
- ) else (
- echo 这是中文
- set t=CN
- )
- PAUSE
复制代码
我想加一个如果输入中英文混合的,ECHO 这是中英文 set t=EC。研究了好久都失败了 求解!
数字也算英文里面,符号不用管。
作者: 77七 时间: 2022-12-24 14:52
- @echo off
- setlocal enabledelayedexpansion
- set /p str=请输入:
- for /l %%a in (0,1,10) do (
- if not "!str:~%%a,1!"=="" (
- echo !str:~%%a,1!|findstr "[a-zA-Z0-9]" && set /a "n=n+1" || set /a "m=m+1"
- )
- )
- if defined n set t=EN
- if defined m set t=CN
- if defined n if defined m set t=EC
- cls
- if not defined n set n=0
- if not defined m set m=0
- echo 英文 数量 :!n!
- echo 中文 数量 :!m!
- echo %t%
- endlocal
- pause
复制代码
作者: jorlaying 时间: 2022-12-24 16:28
本帖最后由 jorlaying 于 2022-12-24 16:30 编辑
回复 2# 77七 - @echo off
- setlocal enabledelayedexpansion
- set /p str=请输入:
- for /l %%a in (0,1,10) do (
- if not "!str:~%%a,1!"=="" (
- echo !str:~%%a,1!|findstr "[a-zA-Z0-9]" && set /a "n=n+1" || set /a "m=m+1"
- )
- )
- if defined n set t=EN
- if defined m set t=CN
- if defined n if defined m set t=EC
- echo %t%
- endlocal
- pause
复制代码
厉害啊七哥!但是数量不需要,只需要输出EN CN EC就好了,改了一下你的代码,但是不知为何EN和EC会多出来一个结果。会把输入的字母显示出来。
作者: 77七 时间: 2022-12-24 18:08
复制代码
这个输出的
加个 cls 清屏
作者: jorlaying 时间: 2022-12-24 18:30
回复 4# 77七
可以了,谢谢 我用>nul 2>nul藏起来了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |