Board logo

标题: [求助]for 循环中替换变量的特殊字符 [打印本页]

作者: mylovelyqq     时间: 2006-12-13 07:20    标题: [求助]for 循环中替换变量的特殊字符

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

说明:要过滤的特殊字符几乎涵盖了键盘上能直接输入各种符号,%符号不过滤
作者: namejm     时间: 2006-12-13 07:41
  set /p 注定不能处理 <、>等特殊字符。

  请参考这个帖子:如何过滤变量中指定的字符[已解决]
作者: youxi01     时间: 2006-12-13 08:19
其实set /p 中输入特殊字符以外退出的问题可以通过“构造”解决的,要不要开贴讨论啊?斑竹
作者: namejm     时间: 2006-12-13 08:23
  能处理 < 和 > 的 set /p 历来就是个难题,youxi01 如果有解决之道的话,那就开个专帖来讨论一下吧。
作者: youxi01     时间: 2006-12-13 08:31
但是只能解决意外退出的问题哦!

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

[ Last edited by youxi01 on 2006-12-13 at 08:37 AM ]
作者: a9319751     时间: 2006-12-13 08:33


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

道来听听~
恭候