Board logo

标题: [文件操作] 求助批处理如何删除子孙夹隐藏的临时文件以及容量<1kb的文件 [打印本页]

作者: youxianwei    时间: 2022-11-24 18:10     标题: 求助批处理如何删除子孙夹隐藏的临时文件以及容量<1kb的文件

本帖最后由 youxianwei 于 2022-11-27 11:05 编辑

求助批处理如何删除子孙夹隐藏的临时文件以及容量<1kb的文件
链接:https://pan.baidu.com/s/1EpXgIrIeKMSgJfP-0PWeTg?pwd=6666
提取码:6666
desktop.ini,_desktop.ini,Desktop_.ini,~$.xls,~$.doc,~$.ppt【这些文件无法删除。。。】


@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




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2