本帖最后由 yyykkkyyyy 于 2011-11-14 22:45 编辑
感觉~做过一个备份3天的~麻烦,那就是会写啰
日期计算要用vbs的简单,纯批处理日期总是有那些麻烦...我就献丑了- @echo off&setlocal enabledelayedexpansion
- set n=3
-
- rem ===============计 n 天前的日期============================
- set/a y=%date:~,4%,m=1%date:~5,2%,d=1%date:~8,2%-n
- :r
- if %d% leq 100 (
- rem 先统一按每月31天计,之后修正======
- set/a d+=31
- set/a m-=1
- if !m! equ 100 set/a "m+=12,y-=1"
- echo !m:~-2!|findstr/x "04 06 09 11">nul&&set/a d-=1
- if !m! equ 102 set/a "d-=3-^!(y&3)+^!(y%%100)-^!(y%%400)"
- goto :r)
- set ymd=%y%%m:~-2%%d:~-2%
- echo 准备删除 %ymd% 之前的日期文件夹
-
- :: ==============查找文件夹名为8个数组成的文件夹===========
- :: 如果含有不是日期又是8位数组成的文件夹名则可能会误删,这里只显示并不删
-
- for /L %%i in (1 1 8)do set ds=!ds![0-9]
- for /f "delims=" %%i in ('dir/b/ad/s^|findstr/e "\\%ds%"')do (
- if "%%~ni" leq "%ymd%" echo rd/s/q "%%i")
- pause
复制代码
|