Board logo

标题: [文件管理] 批处理删除名字含非法字符的文件与目录 [打印本页]

作者: 梦想种子    时间: 2008-5-1 15:42     标题: 批处理删除名字含非法字符的文件与目录

在教师之家里看到youxi01的一个帖子,知道可以用指定的UNC地址删除畸形文件和文件夹。
  1. DEL /F /A /Q \\?\%1
  2. RD /S /Q \\?\%1
复制代码

觉得很好用。于是随机创建了许多畸形文件夹测试。
后来发觉这个脚本只能一次删一个文件夹,然而待删的文件夹名字都没有规律。
想一次能删除多个,才写了下面这个:(高手莫笑)
  1. :next
  2. @(del/a/f/q \\?\%1
  3. rd/s/q \\?\%1) 2>nul
  4. @shift
  5. @if not (%1) == () goto next
复制代码

把要删除的文件或文件夹拖到BAT的图标上即可。
作者: 随风    时间: 2008-5-1 16:12

哈哈。
  畸形文件不能用 dir和for来遍历,shift    用的巧妙啊!
但是要强行用for应该也可以吧,没测试,感觉应该也可以,只是代码可能麻烦点。

[ 本帖最后由 随风 于 2008-5-1 16:14 编辑 ]
作者: lky216    时间: 2013-4-30 13:27

复制,留名。谢亲
作者: CrLf    时间: 2013-4-30 14:16

回复 3# lky216


    撸主的方案碰到特殊情况会让你哭的,比如 %1=c:\windows\system32\&.txt 会干掉整个 system32 目录,然后再跟你报告“'.txt' 不是内部或外部命令,也不是可运行的程序或批处理文件。”这语气学得像微软吧?其实是复制的...
    路径中基本的引号还是不能省,尤其是这种高杀伤性的命令。
  1. DEL /F /A /Q "\\?\%~1"
  2. RD /S /Q "\\?\%~1"
复制代码

作者: lky216    时间: 2013-4-30 15:19

回复 4# CrLf


    好,谢谢,差点被炒鱿鱼了,救命恩人。
    你头像黑白对调下看看,还不错。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2