您的位置:首页 > 其它

关于盘符里某些文件夹删除不了的解决方案研究

2010-01-15 14:35 232 查看
电脑用久了,有时我们会发现盘符里某些文件夹删除不了的情况,究其原因有很多我们不探讨,我们要探讨的就是要怎样把它干掉:)
1:网上有很多文件夹粉碎工具,如冰仞等,处理的干净利落,效果很不错.
2:其实还可以用检查盘符的命令把当前的盘符检查一遍,若某些文件夹有点错误,系统会自动修复,我试过有些文件夹修复之后就可以正常删除了



3:网上流传用这个批处理来做删除效果也不错,但也不能乱用,某些情况下会出大问题.
使用方法就是把下面这两个命令保存成一个后缀名为BAT的文件,然后把删除不掉的文件夹手动拖拽到此BAT文件上面你会发现此文件夹被删除掉了.
DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1
关于以上简单删除方法我们来理解它的意思,看后面参数就知道这个命令怎么用了,不用我多说
del是删除文件的




rd是删除空目录(文件夹)的


windows的命名约定中,路径组合的长度为260字节,但也提供了超长路径的统一访问支持,那就是添加可扩展UNC路径\\?\前辍的绝对路径,以便达到最大路径字节32767
\\?\表示了当前电脑的根目录,而各磁盘分区如同在资源管理器中那样,是处于我的电脑之下一阶当中的 \\?\在命令行中无法直接执行文件或切换目录,但大多数内部命令都可以支持这样的路径
至于%1 是自身的意思!
UNC的一个本地化特例。
?\可以理解成遍历,?是统配符,表示匹配0个或1个任意字符。
.\代表本地节点,在概念上来有点像磁盘根目录,也可以说成是计算机根目录。
所以dir \\.\C:\是可以被命令行解释器识别的,更可以跨盘符的来使用绝对路径引用,例如: F:\>\\.\C:\windows\system32\cmd.exe
经过我测试应用发现,如果你要删除的文件夹的名称里对含有"^或 & 或^&组合字符"进行删除将导致当前盘所有文件丢失非常危险,非常有意思的一点如果文件夹的名称里有&^把这两个特殊的字符倒换一下,竟然删除不了,奇怪的是如果文件夹名称里包含#$@%这样特殊字符删除都不会有问题,偏偏系统对^&这两个字符感冒,所以不怕一万就怕万一,如果你把这个BAT告诉你的朋友这样可以删除畸形的文件夹,万一这个文件夹的名称里包含有"^或 & 或^&组合字符"你就晕了,当前盘里的所有数据一下全都给删除掉了.为了防止以上状况出现,我们可以改进一下这个批处理文件,先做判断这个畸形的文件夹的名称里有没有包含"^或 & 或^&组合字符"有的话给出提示告诉用户不可以这样操作,终止删除的操作,没有的话就可以正常删除,这样我们就可以做到万无一失了.
@echo off
if not "%~n1"=="" if not exist "%~f1" goto OK
if not "%~n1"=="" if exist "%~f1" goto OK
title warning:危险操作
cls
mode con cols=80 lines=15 & color 9c
@echo.
@echo 你当前的畸形文件夹名称里含有"^ & 或^&组合字符"进行删除将导致当前整个盘符里所有文件丢失,
@echo 你应该用其它方法避免此操作.
@echo.
@echo DIY BY:allan
@echo.
pause >nul 2>nul
echo
goto eof
:OK
set word="%~n1"
if "%word:~1,1%"=="&" goto NOT
if "%word:~1,2%"=="^&" goto NOT
del /f /a /q \\?\%1 >nul 2>nul
rd /s /q \\?\%1 >nul 2>nul
echo
goto eof
:NOT
title warning:危险操作
mode con cols=80 lines=15 & color 9c
@echo.
@echo 你当前的畸形文件夹名称里含有"^ & 或^&组合字符"进行删除将导致当前整个盘符里所有文件丢失,
@echo 你应该用其它方法避免此操作.
@echo.
@echo DIY BY:allan
@echo.
pause >nul 2>nul
这里就只说这么多,可能大家还有更多的好方法欢迎分享,我写这篇的目的就是引起大家对DEL和RD这两个命令应用的注意,做技术要注意细节,细节决定成败非常有道理.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐