标题: [文件操作] [已解决]BAT批处理创建文件夹如何过滤特殊字符? [打印本页]
作者: qiukong 时间: 2014-4-27 16:09 标题: [已解决]BAT批处理创建文件夹如何过滤特殊字符?
本帖最后由 qiukong 于 2014-4-27 23:48 编辑
最近在做个程序,根据输入内容创建文件夹。
大致代码是:复制代码
这样的简单处理。
目前遇到的问题是,如果输入内容中有特殊字符,例如 : / \ | 这类Windows不允许用作文件夹的名字,就会创建失败。
求助各位,在中间加入什么命令,或者调用什么工具,可以把输入的这类字符过滤成空格或者其它字符,让文件夹能够成功创建?
再次感谢各位!!
作者: qiukong 时间: 2014-4-27 23:47
- @echo off
- :**
- cls.
- set /p var=输入内容:
- set "var=%var:\= %"
- set "var=%var:/= %"
- set "var=%var::= %"
- set "var=%var:?= %"
- set "var=%var:"= %"
- set "var=%var:<= %"
- set "var=%var:>= %"
- set "var=%var:|= %"
- echo "%var%"
- pause
- goto **
复制代码
没人嗯,自己解决吧…………
作者: CrLf 时间: 2014-4-27 23:48
- @echo off
- set /p dir=
- set "dir=%dir:"= %"
- :loop
- for /f "tokens=1* delims=\/:*?<>|" %%a in ("%dir%") do (
- if %%b. neq . set "dir=%%a %%b"&goto loop
- )
- md "%dir%"
复制代码
作者: qiukong 时间: 2014-4-27 23:50
回复 3# CrLf
非常感谢!!!真是巧啊,刚好回复完。您这个方法比我那个好多了,还能过滤*。真是感谢大神~~
作者: kmustwxw 时间: 2014-4-28 12:49
回复 3# CrLf set "dir=%dir:"= %"这段代码不是已经把“引号替换为空格了吗??后面的分割符怎么还有引号呢??而且我试着去掉引号,运行不成功。请求解释下,谢谢。
作者: DAIC 时间: 2014-4-28 16:18
回复 5# kmustwxw
你是说 "tokens=1* delims=\/:*?<>|" 这里的引号吗?
它是 for 命令本身的一部分,而不是作为分隔符的一部分。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |