中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何验证输入的字符串包含双字节字符
« [1] [2] »
作者:
标题: 如何验证输入的字符串包含双字节字符 上一主题 | 下一主题
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『楼 主』:  如何验证输入的字符串包含双字节字符

rt。再扩展一下,如何查找识别文本中的内容为中文

2008-1-4 20:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 2 楼』:  

这个问题我研究了一年,不信搜我第一个贴子,嘿嘿

2008-1-4 20:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

o_O

要求纯批处理么?

[ Last edited by lxmxn on 2008-1-4 at 08:36 PM ]

2008-1-4 20:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 4 楼』:  

先用字符截取单个字符,再用你的(echo string&echo.)|findstr /o ".*"判断是否是两个字节
(用字符截取判断字符个数,再用(echo string&echo.)|findstr /o ".*"判断字节数,如果相等,则没有包含双字节字符)

input:中文
4


input:English
7


input:中文+English
12




2008-1-4 20:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 5 楼』:  


@echo off
set/p input=输入:
set str=%input%

:loop
set str=%str:~1%
set/a n+=1
if not "%str%" == "" goto loop

for /f "skip=1 delims=:" %%i in ('^(echo "%input%"^&echo.^)^|findstr /o ".*"') do set/a l=%%i-5
if %n% == %l% (
  echo 字符串 %input% 不包含双字节字符
) else (
  echo 字符串 %input% 包含双字节字符
)
pause>nul
exit
[ Last edited by zh159 on 2008-1-4 at 08:58 PM ]



2008-1-4 20:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 6 楼』:  

zh159
嘿嘿,findstr的o参数也是我研究这个才发现的,不过这样子代码就显得太长了一点,所以想问问有没有别的方法
lxmxn
若是有简单一点的VBS脚本也可以

2008-1-4 21:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  

很久以前斑竹教过我们一个方法:

  Quote:
读取第一个数字后,首先用批处理判断是不是空格,若不为空格,则通过:
echo %x%>3.txt 然后读取 3.txt 的文件大小是一个字节还是两个字节来判断是不是汉字。

现在又有了findstr /o的方法

期待更简介的方法^_^

2008-1-4 21:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
junchen2
高级用户





积分 537
发帖 219
注册 2007-8-4
来自 杭州--半山
状态 离线
『第 8 楼』:  

echo 望大师,傅.看见fdg|awk "{a=gsub(/[\x80-\xff]/,\"\");print a/2\"个汉子\"}"

6个汉子

2008-1-4 23:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by everest79 at 2008-1-4 21:16:
zh159
嘿嘿,findstr的o参数也是我研究这个才发现的,不过这样子代码就显得太长了一点,所以想问问有没有别的方法
lxmxn
若是有简单一点的VBS脚本也可以

VBS脚本也简单不了多少:
@echo off
set/p input=:

>ascw.vbs echo Wscript.echo ascw(wscript.arguments(0))

for /f %%i in ('"cscript //nologo ascw.vbs %input%"') do (
  if %%i leq 255 (
    echo %input% 不是双字节字符
  ) else (
    echo %input% 是双字节字符
  )
)
pause


   此帖被 +15 点积分         点击查看详情   
评分人:【 everest79 分数: +15  时间:2008-1-5 00:43




2008-1-5 00:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 10 楼』:  

To zh159:
这个情况输入哪个呢?

  Quote:
:ok我
ok我 不是双字节字符
请按任意键继续. . .



2008-1-5 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 11 楼』:  

ascw只能一个个字符处理,要判断整句得用另外的语句配合了
所以我 9 楼只写“不是双字节字符、是双字节字符”,而不写“包不包含双字节字符”



2008-1-5 01:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 12 楼』:  

判断字符串的:
@echo off
set/p input=:

>ascw.vbs echo str=wscript.arguments(0):result="不":for i=1 to len(str):if ascw(mid(str,i,1))^>255 then:result="":exit for:end if:next:Wscript.echo result^&"包含双字节字符"

for /f %%i in ('"cscript //nologo ascw.vbs %input%"') do echo %input% %%i
pause




2008-1-5 01:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 13 楼』:  

http://www.google.com/search?hl= ... +%E4%B8%AD%E6%96%87




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2008-1-5 17:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 14 楼』:  

VBS可用正则判断字符类型,不过我还不会-_-|||



2008-1-5 20:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 15 楼』:  

有没有完整点的,只是一句我是没办法照猫画虎

2008-1-5 20:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: