![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 15:17 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何过滤变量中指定的字符[已解决] |
| 可打印版本 8,793 / 31 |
| 第1楼 fornever | 发表于 2006-08-30 21:41 |
| 初级用户 发帖 35 积分 98 | |
|
如何过滤变量中指定的字符[已解决] 我想要实现的功能是在用户输入任意字符后过滤掉指定的字符
或者是指定使用的字符类型 请高手指教! [ Last edited by fornever on 2006-9-16 at 22:03 ] |
|
| 第2楼 NaturalJ0 | 发表于 2006-08-30 21:51 |
| 银牌会员 发帖 533 积分 1,181 | |
|
把 var 分两段
第一段是第一个字符,第二段是后面所有剩余的。 然后判断第一个字符是否要过滤。。。 然后判断剩下的字符串是否为空,如果不是就 GOTO 回上去继续循环。 |
|
| 第3楼 namejm | 发表于 2006-08-30 22:51 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
Re fornever:
过滤掉输入的字符是什么意思?就是在某个文本中把输入的字符删掉么?不明白你想做什么操作。 |
|
| 第4楼 fornever | 发表于 2006-08-31 21:21 |
| 初级用户 发帖 35 积分 98 | |
|
是这样,比如用copy con h.txt命令或者set /p 命令让用户输入任意字符,然后我在后台过滤掉指定的字符,也不是过滤,就是提示说哪个哪个字符不准使用.总之是要识别某种字符吧!偶语文ci,还原谅!~
re:NaturalJ0 在想如何分割一个字符串,包括数字字母和n多的符号,或者说是 规定只能用某种类型的字符,比如规定只能用字母和数字, 要怎么样实现? 或者借助第三方工具? |
|
| 第5楼 NaturalJ0 | 发表于 2006-08-31 21:45 |
| 银牌会员 发帖 533 积分 1,181 | |
|
set /p var="请用户输入:"
%var:~0,1% 这表示的是变量 var 的第一个字符 %var:~1% 这表示变量 var 除第一个字符外的后面所有字符 分段后你可以再做赋值或比较什么的,可以再用这个方法对剩下的字符串再取第一个字符。后面再怎么做,我想你自己会的吧。 |
|
| 第6楼 fornever | 发表于 2006-08-31 22:23 |
| 初级用户 发帖 35 积分 98 | |
|
呵呵.刚学会在看回复前,不过还是谢谢哈!
批处理真的是博大精深,敬! 想想还是现在写一下代码: set /p var=请输入: :start if "%var:~0,1%"=="?" goto error if "%var:~0,1%"==">" goto error if "%var:~0,1%"=="<" goto error if "%var:~0,1%"=="|" goto error :: if "%var:~0,1%"=="添加过滤的字符" goto error if "var"=="" goto next set var=%var:~1% goto start :next echo succeed! goto end :error echo error! :end 再次感谢帮助过的朋友! |
|
| 第7楼 namejm | 发表于 2006-08-31 23:51 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
批处理并不能检测所有的字符,碰到敏感字符如|、>、<等等就会自动退出的。
|
|
| 第8楼 vkill | 发表于 2006-09-01 12:55 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
namejm 说的有理
|
|
| 第9楼 fornever | 发表于 2006-09-01 18:36 |
| 初级用户 发帖 35 积分 98 | |
|
...那用^符号可以吗?
其实我的目的是过滤掉那些不允许做文件名的字符 |
|
| 第10楼 fornever | 发表于 2006-09-04 05:19 |
| 初级用户 发帖 35 积分 98 | |
|
关于fingstr命令 其实还是上次的问题,不过今次不同的是要限制
限制set /p 后用户输入的字符为数字,大小写字母和特定的几个特殊符号 或者只限制某个类型的也可以! |
|
| 第11楼 namejm | 发表于 2006-09-05 07:18 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
fingstr应该是findstr的笔误。
上次?上次的在哪?如果不是有心人,没人会关注他人的上次发的究竟是什么帖子。呵呵,你的要求我看得一头雾水。 |
|
| 第12楼 fornever | 发表于 2006-09-05 22:34 |
| 初级用户 发帖 35 积分 98 | |
|
对不起 确实是
http://www.cn-dos.net/forum/viewthread.php?tid=22897&fpage=1&highlight= 所谓的上次 意思是在用户输入字符串后用if 和findstr判断输入中是否有限制的字符 我想用findstr 限制输入的数据类型 为 大小写字母和数字 code: set /p input: ::此处写findstr限制的%input:%类型 if .... ::此句if判断是否有不允许的字符类型,比如某些符号 |
|
| 第13楼 vkill | 发表于 2006-09-06 02:28 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
这个难
|
|
| 第14楼 9527 | 发表于 2006-09-06 02:53 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
findstr "^[a-z][A-Z]*$" 判断纯字母
findstr "^[0-9]*$" 判断纯数字 @echo off set/p aa=Enter your code: echo %aa%|findstr "^[a-z][A-Z]*$"||echo ERROR!!! 随便写了一下,判断纯字母,不知道楼主是否是这个意思??? |
|
| 第15楼 namejm | 发表于 2006-09-06 02:57 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
贴一段findstr的用法出来,楼主可以模仿着写个限制输入类型的代码出来:
|
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |