|
yhshiro
初级用户
积分 130
发帖 59
注册 2007-12-25
状态 离线
|
『楼 主』:
高手来帮我写个批处理吧~删文件个目录的【已经解决】
我想要个能删除某个盘下超过3天的任何文件包括目录,要可以指定排除目录和文件的!
例如:我指定不删除D盘下的(下载),那运行后的效果是 D盘下只有一个(下载)的目录其他的都删了,D盘(下载)目录里面超过3天的文件也删除了~
Quote: | 看一下这个。。。这个只是删除超过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 ]
|
|
2008-2-28 14:17 |
|
|
yhshiro
初级用户
积分 130
发帖 59
注册 2007-12-25
状态 离线
|
『第
2 楼』:
我已经改了,来个会的帮我写个啊,我不会BAT
|
|
2008-2-28 19:30 |
|
|
fastslz
铂金会员
DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
3 楼』:
Quote: | @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"
运行该代码风险自担
|
第一高手 第二高手
我的小站
|
|
2008-2-29 00:06 |
|
|
yhshiro
初级用户
积分 130
发帖 59
注册 2007-12-25
状态 离线
|
|
2008-2-29 03:57 |
|
|
yhshiro
初级用户
积分 130
发帖 59
注册 2007-12-25
状态 离线
|
『第
5 楼』:
就把我上面的改一下 加个排除的目录就可以了啊!~还有排除目录的下级目录也一起删除.......
好像这代码太麻烦了....
|
|
2008-2-29 04:05 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
6 楼』:
@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 ]
|
简单!简单!再简单! |
|
2008-2-29 14:03 |
|
|
yhshiro
初级用户
积分 130
发帖 59
注册 2007-12-25
状态 离线
|
『第
7 楼』:
Quote: | 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\桌面\人
找不到文件
文件名、目录名或卷标语法不正确。
请按任意键继续. . .
|
|
2008-2-29 15:54 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by yhshiro at 2008-2-29 15:54:
系统找不到指定的文件。
找不到 C:\Documents and Settings\Administrator\桌面\人
找不到文件
文件名、目录名或卷标语法不正确。
请按任意键继续. . . |
|
对于这样的提示 现不明白你那边环境
重新改一下6楼代码 再 试一下 建议备份原文件
|
简单!简单!再简单! |
|
2008-2-29 22:21 |
|
|
yhshiro
初级用户
积分 130
发帖 59
注册 2007-12-25
状态 离线
|
|
2008-3-1 21:22 |
|
|
halby
初级用户
积分 24
发帖 11
注册 2008-4-8
状态 离线
|
|
2008-4-15 00:32 |
|
|
halby
初级用户
积分 24
发帖 11
注册 2008-4-8
状态 离线
|
|
2008-4-15 00:32 |
|
|
zyroy000
初级用户
积分 30
发帖 13
注册 2005-12-6
状态 离线
|
|
2008-4-23 15:24 |
|