中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 16:40
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]for 循环中替换变量的特殊字符
可打印版本  993 / 5
第1楼 mylovelyqq 发表于 2006-12-13 07:20
初级用户 发帖 25 积分 170
[求助]for 循环中替换变量的特殊字符
首先, set /p xxx=请输入变量值: , 我想把用户输入的值中可能含有的特殊字符如`~!@#$^&...全部去掉,只保留合法有效的字符,为此,我新建了一个filterchr.txt文件,有十几行,每一行是一个特殊字符,形式如下:
`
~
!
@...
在批处理中我用
for /f %%i in (filterchr.txt) do set xxx=!XXX:%%i=!
结果得到的变量xxx值乱七八糟, 我加了变量延迟也不行

说明:要过滤的特殊字符几乎涵盖了键盘上能直接输入各种符号,%符号不过滤
第2楼 namejm 发表于 2006-12-13 07:41
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  set /p 注定不能处理 <、>等特殊字符。

  请参考这个帖子:如何过滤变量中指定的字符
第3楼 youxi01 发表于 2006-12-13 08:19
高级用户 发帖 247 积分 846 来自 湖南==》广东
其实set /p 中输入特殊字符以外退出的问题可以通过“构造”解决的,要不要开贴讨论啊?斑竹
第4楼 namejm 发表于 2006-12-13 08:23
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  能处理 < 和 > 的 set /p 历来就是个难题,youxi01 如果有解决之道的话,那就开个专帖来讨论一下吧。
第5楼 youxi01 发表于 2006-12-13 08:31
高级用户 发帖 247 积分 846 来自 湖南==》广东
但是只能解决意外退出的问题哦!

不好意思,回来的时候再讨论好?,等下有事情了!

[ Last edited by youxi01 on 2006-12-13 at 08:37 AM ]
第6楼 a9319751 发表于 2006-12-13 08:33
中级用户 发帖 170 积分 439
Originally posted by youxi01 at 2006-12-13 08:31:
但是只能解决意外退出的问题哦!

道来听听~
恭候
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023