@echo off & cd /d "%~dp0"
setlocal enabledelayedexpansion
rem ████████████████████████████████████████████████
rem 删伪空夹
for /f "delims=" %%i in ('dir /s /b /ah thumbs.db ^| sort /r') do (
dir /b /a-d /a-h "%%~dpi" | findstr "." >nul 2>nul || (
echo 删除文件夹 %%~dpi
rmdir /s /q "%%~dpi"
))
rem 删伪空夹
for /f "delims=" %%i in ('dir /s /b /ah desktop.ini ^| sort /r') do (
dir /b /a-d /a-h "%%~dpi" | findstr "." >nul 2>nul || (
echo 删除文件夹 %%~dpi
rmdir /s /q "%%~dpi"
))
rem 删伪空夹
for /f "delims=" %%i in ('dir /s /b /ah desktop_.ini ^| sort /r') do (
dir /b /a-d /a-h "%%~dpi" | findstr "." >nul 2>nul || (
echo 删除文件夹 %%~dpi
rmdir /s /q "%%~dpi"
))
rem 删伪空夹
for /f "delims=" %%i in ('dir /s /b /ah _desktop.ini ^| sort /r') do (
dir /b /a-d /a-h "%%~dpi" | findstr "." >nul 2>nul || (
echo 删除文件夹 %%~dpi
rmdir /s /q "%%~dpi"
))
rem 删伪空夹
for /f "delims=" %%i in ('dir /s /b /ah descript.ion ^| sort /r') do (
dir /b /a-d /a-h "%%~dpi" | findstr "." >nul 2>nul || (
echo 删除文件夹 %%~dpi
rmdir /s /q "%%~dpi"
))
rem ████████████████████████████████████████████████
rem 删伪空夹里的隐藏文件
set 后缀名库=ini;dwl2;dwl;fas;tmp;db;DS_Store
for /f "delims=" %%件 in ('dir /a-d /s /b') do (
if not "%%~nx件"=="%~nx0" ( rem 自己除外
for %%i in (%后缀名库%) do (
if /i ".%%~i"=="%%~x件" (
attrib -h "%%件"
del /f /q "%%~件"
))))
rem ████████████████████████████████████████████████
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /r %%i in (*.*) do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
if %%~zi LSS 1024 del "%%i"
))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /f "tokens=3,4 delims= " %%i in ('dir /b /s /a-d *.doc') do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
set lenb=%%i
set lenb=!lenb:,=!
if !lenb! lss 1024 echo del "%%j"
))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /f "tokens=*" %%i in ('dir /b /s /a-d *.doc') do (
if not "%%~ni"=="%~n0" ( rem 自己除外
attrib -h "%%i"
if %%~zi lss 1024 del "%%i" /f /q
))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
pushd "%1"
for /f "tokens=3*" %%i in ('dir/s/-c^|findstr ".doc"') do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
set /a s=%%i
if !s! lss 1024 type nul>"%%j")
)
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /r %%i in (*) do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
if %%~zi LSS 1024 echo del "%%i">>*.doc
))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
set /a "FileSize=1*1024"
for /f "delims=" %%i in ('dir /b /s /a-d *.doc') do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
if %%~zi equ %FileSize% (
del /f /q "%%i"
)))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /f "delims=" %%i in ('dir /b /s /a-d *.doc') do
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
del "%%i"
)
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /f "delims=" %%i in ('hash /z::~1024 /nh %%b\*.doc') do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
del "%%i"
))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /f "delims=" %%b in ('dir /a-d /s /b') do (
for /f "delims=" %%i in ('hash /z::~1024 /nh %%b\*.doc') do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
del "%%i"
)))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /f "delims=" %%i in ('dir /b /s *.*') do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
if %%~zi lss 1024 (
del /f /q "%%i"
)))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /f "delims=" %%i in ('dir /b /s *.gif') do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
if %%~zi lss 1024 (
del /f /q "%%i"
)))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
set size=1024
for /f "delims=" %%i in ('dir /a:-d /b /s') do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
if %%~zi lss %size% (
del /a /f "%%i"
)))
rem 删小于1kb的文件【失败无法删除desktop.ini,~$.xls,~$.doc,~$.ppt】
for /f %%i in ("*.doc") do (
if not "%%~nxi"=="%~nx0" ( rem 自己除外
attrib -h "%%i"
if %%~zI LSS 1024 del *.doc
))
rem ████████████████████████████████████████████████
rem 删真空夹
for /f "tokens=*" %%夹 in ('dir /b /s /ad^|sort /r') do rd "%%夹" 2>nul