找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26813|回复: 5

[文件操作] [已解决]BAT批处理创建文件夹如何过滤特殊字符?

[复制链接]
发表于 2014-4-27 16:09:02 | 显示全部楼层 |阅读模式
本帖最后由 qiukong 于 2014-4-27 23:48 编辑

最近在做个程序,根据输入内容创建文件夹。
大致代码是:
  1. set /p dir=
  2. md "%dir%"
复制代码
这样的简单处理。
目前遇到的问题是,如果输入内容中有特殊字符,例如 : / \ | 这类Windows不允许用作文件夹的名字,就会创建失败。
求助各位,在中间加入什么命令,或者调用什么工具,可以把输入的这类字符过滤成空格或者其它字符,让文件夹能够成功创建?
再次感谢各位!!
 楼主| 发表于 2014-4-27 23:47:48 | 显示全部楼层
  1. @echo off
  2. :**
  3. cls.
  4. set /p var=输入内容:
  5. set "var=%var:\= %"
  6. set "var=%var:/= %"
  7. set "var=%var::= %"
  8. set "var=%var:?= %"
  9. set "var=%var:"= %"
  10. set "var=%var:<= %"
  11. set "var=%var:>= %"
  12. set "var=%var:|= %"
  13. echo "%var%"
  14. pause
  15. goto **
复制代码
没人嗯,自己解决吧…………
发表于 2014-4-27 23:48:28 | 显示全部楼层
  1. @echo off
  2. set /p dir=
  3. set "dir=%dir:"= %"
  4. :loop
  5. for /f "tokens=1* delims=\/:*?<>|" %%a in ("%dir%") do (
  6.    if %%b. neq . set "dir=%%a %%b"&goto loop
  7. )
  8. md "%dir%"
复制代码

评分

参与人数 1技术 +1 收起 理由
qiukong + 1 非常感谢!!

查看全部评分

 楼主| 发表于 2014-4-27 23:50:48 | 显示全部楼层
回复 3# CrLf


    非常感谢!!!真是巧啊,刚好回复完。您这个方法比我那个好多了,还能过滤*。真是感谢大神~~
发表于 2014-4-28 12:49:07 | 显示全部楼层
回复 3# CrLf   set "dir=%dir:"= %"这段代码不是已经把“引号替换为空格了吗??后面的分割符怎么还有引号呢??而且我试着去掉引号,运行不成功。请求解释下,谢谢。
发表于 2014-4-28 16:18:37 | 显示全部楼层
回复 5# kmustwxw


你是说 "tokens=1* delims=\/:*?<>|" 这里的引号吗?
它是 for 命令本身的一部分,而不是作为分隔符的一部分。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 07:49 , Processed in 0.032045 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表