中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]for 循环中替换变量的特殊字符
作者:
标题: [求助]for 循环中替换变量的特殊字符 上一主题 | 下一主题
mylovelyqq
初级用户




积分 170
发帖 25
注册 2004-11-11
状态 离线
『楼 主』:  [求助]for 循环中替换变量的特殊字符

首先, set /p xxx=请输入变量值: , 我想把用户输入的值中可能含有的特殊字符如`~!@#$^&...全部去掉,只保留合法有效的字符,为此,我新建了一个filterchr.txt文件,有十几行,每一行是一个特殊字符,形式如下:
              `
              ~
               !
               @...
在批处理中我用
for /f %%i in (filterchr.txt) do set xxx=!XXX:%%i=!
结果得到的变量xxx值乱七八糟, 我加了变量延迟也不行

说明:要过滤的特殊字符几乎涵盖了键盘上能直接输入各种符号,%符号不过滤

2006-12-13 07:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  set /p 注定不能处理 <、>等特殊字符。

  请参考这个帖子:如何过滤变量中指定的字符[已解决]



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-13 07:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 3 楼』:  

其实set /p 中输入特殊字符以外退出的问题可以通过“构造”解决的,要不要开贴讨论啊?斑竹

2006-12-13 08:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 4 楼』:  

  能处理 < 和 > 的 set /p 历来就是个难题,youxi01 如果有解决之道的话,那就开个专帖来讨论一下吧。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-13 08:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 5 楼』:  

但是只能解决意外退出的问题哦!

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

[ Last edited by youxi01 on 2006-12-13 at 08:37 AM ]

2006-12-13 08:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by youxi01 at 2006-12-13 08:31:
但是只能解决意外退出的问题哦!

道来听听~
恭候



bat c c++
2006-12-13 08:33
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: