Board logo

标题: 高手来帮我写个批处理吧~删文件个目录的【已经解决】 [打印本页]

作者: yhshiro     时间: 2008-2-28 14:17    标题: 高手来帮我写个批处理吧~删文件个目录的【已经解决】
我想要个能删除某个盘下超过3天的任何文件包括目录,要可以指定排除目录和文件的! 例如:我指定不删除D盘下的(下载),那运行后的效果是 D盘下只有一个(下载)的目录其他的都删了,D盘(下载)目录里面超过3天的文件也删除了~
看一下这个。。。这个只是删除超过3天的文件,不会删除目录,也不可以指定不需要删除的文件和目录! 是这BBS的人帮我写的!麻烦再帮忙改改~~ SET TT=3 set p1=%date:~0,4% set p2=%date:~5,2% set p3=%date:~8,2% setlocal enabledelayedexpansion for /l %%a in (1,1,3) do ( for /f "delims=0 tokens=*" %%i in ("!p%%a!") do set p%%a=%%i ) if %p3% gtr %TT% goto ppp :nxt set/a p2-=1 if %p2% equ 0 set/a p1-=1&&set p2=12 SET/a PN1=%p1%%%4 set PN2=28 if %PN1% EQU 0 set pN2=29 for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set/a p3=%p3%+%%i if %p3% leq %tt% goto nxt :ppp set/a p3=%p3%-%tt% set p2=0%p2% set p2=%p2:~-2,2% set p3=0%p3% set p3=%p3:~-2,2% for /r "f:\" %%i in (*.*) do set t=%%~ti &&call :loop "%%~fi" goto :eof :loop if not "%~1" == "%~f0" ( IF %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% del %1 )
[ Last edited by yhshiro on 2008-3-1 at 09:23 PM ]

作者: yhshiro     时间: 2008-2-28 19:30
我已经改了,来个会的帮我写个啊,我不会BAT

作者: fastslz     时间: 2008-2-29 00:06
@echo off regedit /e "%temp%\bak.reg" "HKEY_CURRENT_USER\Control Panel\International" >aDate.reg echo REGEDIT4 >>aDate.reg echo. >>aDate.reg echo [HKEY_CURRENT_USER\Control Panel\International] >>aDate.reg echo "sShortDate"="yyyy-MM-dd" >>aDate.reg echo "sDate"="-" >>aDate.reg echo "sTimeFormat"="HH:mm:ss" regedit /s aDate.reg&del aDate.reg >tmp.vbs echo Wscript.echo FormatDateTime (DateAdd("d", -3 ,Date),2) for /f "delims=" %%i in ('cscript.exe //nologo tmp.vbs') do set aDate=%%i del tmp.vbs ver|find "2000">nul&&set aDate=%aDate:~2% set aDate=%aDate:-=% setlocal EnableDelayedExpansion for /f "tokens=1,3*" %%i in ('dir /a-d "*.*"^|find "."') do ( set fileDate=%%i set fileDate=!fileDate:-=! if !fileDate! LSS %aDate% del /q/f "%%k" ) setlocal EnableDelayedExpansion for /f "skip=2 tokens=1,3*" %%i in ('dir /ad *^|find "<DIR>"^|find "你要排除的文件夹名"') do ( set fileDate=%%i set fileDate=!fileDate:-=! if !fileDate! LSS %aDate% rd /q "%%k" ) regedit /s "%temp%\bak.reg"&del /q "%temp%\bak.reg" pause
红色-3表示前3天 红色del /q/f "%%k"你够狠换成del /q/f/s "%%k" 红色rd /q "%%k"你够狠换成del /q/f/s "%%k\*"&rd /q/s "%%k" 运行该代码风险自担

作者: yhshiro     时间: 2008-2-29 03:57
不行啊?运行后没效果!

作者: yhshiro     时间: 2008-2-29 04:05
就把我上面的改一下 加个排除的目录就可以了啊!~还有排除目录的下级目录也一起删除....... 好像这代码太麻烦了....

作者: terse     时间: 2008-2-29 14:03
@echo off :st cls SET tt=3 SET ph=d:\ SET phd=下载 set p1=%date:~0,4% set p2=%date:~5,2% set p3=%date:~8,2% setlocal enabledelayedexpansion for /l %%a in (1,1,3) do ( for /f "delims=0 tokens=*" %%i in ("!p%%a!") do set p%%a=%%i ) if %p3% gtr %TT% goto ppp :nxt set/a p2-=1 if %p2% equ 0 set/a p1-=1&&set p2=12 SET/a PN1=%p1%%%4 set PN2=28 if %PN1% EQU 0 set pN2=29 for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set/a p3=%p3%+%%i if %p3% leq %tt% goto nxt :ppp set/a p3=%p3%-%tt% set p2=0%p2% set p2=%p2:~-2,2% set p3=0%p3% set p3=%p3:~-2,2% for /f "tokens=*" %%i in ('dir /b "%ph%"^|find /v "%phd%"') do call :loop "%%i" for /f "tokens=*" %%i in ('dir /b /s /a-d "%ph%%phd%"') do set t=%%~ti&&call :loop1 "%%i" pause goto :eof :loop1 IF %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% if not %1=="" del /a/q/f %1 2>nul&&goto :eof :loop if exist "%ph%%~1\" rd /s /q "%ph%%~1" 2>nul&&goto :eof if exist "%ph%%~1" del /a/q/f "%ph%%~1" 2>nul [ Last edited by terse on 2008-2-29 at 10:23 PM ]

作者: yhshiro     时间: 2008-2-29 15:54
Originally posted by terse at 2008-2-29 02:03 PM: @echo off :st cls SET tt=3 SET ph=d:\ SET phd=下载 set p1=%date:~0,4% set p2=%date:~5,2% set p3=%date:~8,2% setlocal enabledelayedexpansion for /l %%a in (1,1,3) do ( for /f "deli ...
系统找不到指定的文件。 找不到 C:\Documents and Settings\Administrator\桌面\人 找不到文件 文件名、目录名或卷标语法不正确。 请按任意键继续. . .

作者: terse     时间: 2008-2-29 22:21
Originally posted by yhshiro at 2008-2-29 15:54: 系统找不到指定的文件。 找不到 C:\Documents and Settings\Administrator\桌面\人 找不到文件 文件名、目录名或卷标语法不正确。 请按任意键继续. . .
对于这样的提示 现不明白你那边环境 重新改一下6楼代码 再 试一下 建议备份原文件

作者: yhshiro     时间: 2008-3-1 21:22
谢谢哈~

作者: halby     时间: 2008-4-15 00:32
谢谢哈~

作者: halby     时间: 2008-4-15 00:32
收到啊

作者: zyroy000     时间: 2008-4-23 15:24
这个用起来可要小心了