中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何删除子孙夹隐藏的临时文件和容量<1kb文件
作者:
标题: [求助]如何删除子孙夹隐藏的临时文件和容量<1kb文件 上一主题 | 下一主题
youxianwei
新手上路





积分 1
发帖 2
注册 2022-4-20
状态 离线
『楼 主』:  [求助]如何删除子孙夹隐藏的临时文件和容量<1kb文件

[求助]如何删除子孙夹隐藏的临时文件和容量<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

[ Last edited by youxianwei on 2022-11-27 at 11:06 ]

2022-11-27 08:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: