[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件管理] 批处理删除名字含非法字符的文件与目录

在教师之家里看到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的图标上即可。
1

评分人数

静水流深...

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

[ 本帖最后由 随风 于 2008-5-1 16:14 编辑 ]
技术问题请到论坛发帖求助!

TOP

复制,留名。谢亲

TOP

回复 3# lky216


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

TOP

回复 4# CrLf


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

TOP

返回列表