[批处理]强制删除文件及文件夹

电脑上经常会有无法删除的文件及其文件夹

比如损坏文件夹,畸形文件夹,含有系统名称的文件夹,含有权限的文件夹,或正在使用的文件夹

所以就做了个这么玩意,可以强制删除文件夹

 

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 失败
View Code

 

——原文发表于2010-6-4 21:39

你可能感兴趣的:(批处理)