[批处理]强制删除文件及文件夹
电脑上经常会有无法删除的文件及其文件夹
比如损坏文件夹,畸形文件夹,含有系统名称的文件夹,含有权限的文件夹,或正在使用的文件夹
所以就做了个这么玩意,可以强制删除文件夹
1,比如这个带点的文件夹显示无法删除
那么拖进来。可以直接删除掉的
2、再看这个文件夹,带有权限的文件夹,一般情况下是根本无法访问的,就更别说删除了
一样拖过来看看照样可以删除掉
还有就是有很多里面有文件被正在使用而导致的无法删除
这个问题在CMD下不知道该怎么弄,没找到相应的命令
批处理代码,保存为bat文件运行即可:
@echo off setlocal enabledelayedexpansion echo 把要删除的文件或文件夹拖动到此处 set /p name= set name=%name:"=% :0 cls echo 请选择要使用的删除模式 echo 1,快速删除模式(推荐) echo 2,磁盘文件系统修复模式 set ans=n&set /p ans=请选择: if %ans%==1 goto 1 if %ans%==2 goto 2 goto 0 :1 echo =============================================== echo →删除文件夹模式: rd "\\?\%name%" /s /q>nul if %ERRORLEVEL%==0 (if EXIST "%name%" (echo ==失败==) else echo ==成功==&goto end) else echo ==失败== echo. echo →删除文件模式: del /f /s /q /a "\\?\%name%">nul if %ERRORLEVEL%==0 (if EXIST "%name%" (echo ==失败==) else echo ==成功==&goto end) else echo ==失败== echo. echo =================== echo 快速删除模式失败,正在使用完全删除模式... echo =============================================== echo →正在构建目标的ACL访问权限控制表... cacls "\\?\%name%" /e /c /p %username%:f echo. echo →正在清除目标的所有属性... attrib "%name%" -h -s -a -r /s /d echo. echo →重试删除文件夹模式: rd "\\?\%name%" /s /q>nul if %ERRORLEVEL%==0 (if EXIST "%name%" (echo ==失败==) else echo ==成功==&goto end) else echo ==失败== echo. echo →重试删除文件模式: del /f /s /q /a "\\?\%name%">nul if %ERRORLEVEL%==0 (if EXIST "%name%" (echo ==失败==) else echo ==成功==&goto end) else echo ==失败== echo. echo =================== echo 删除失败,如果不是因为正在使用而导致的可以尝试使用模式2 pause>nul&goto 0 :2 echo =============================================== echo 如果是由于文件系统的原因而导致的无法删除可以用CHKDSK来修复磁盘错误,修复完成后即可正常删除文件。 echo 是否用使用CHKDSK命令来修复磁盘错误?[是:Y \ 否:任意键] set ans=n&set /p ans= if /i %ans%==y for /f %%i in ("%name%") do chkdsk %%~di /f /r /x :end echo END&pause>nul exit errorlevel:0 成功 1 失败
——原文发表于2010-6-4 21:39
如果您认为本文对得起您所阅读他所花的时间,欢迎点击右下角↘ 推荐。您的支持是我继续写作最大的动力,谢谢
作者:沧海月明
出处:http://www.cnblogs.com/xxcanghai/
本文地址:http://www.cnblogs.com/xxcanghai/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。