中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 11:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 删除两天以前生成的文件 查看 2,013 回复 1
楼 主 删除两天以前生成的文件 发表于 2011-01-15 00:32 ·  中国 广东 深圳 电信
新手上路
积分 4
发帖 4
注册 2010-12-20 23:07
15年会员
UID 179588
性别 男
来自 安徽宣城
状态 离线
求高手写一个可以检测 某个文件夹内
所有两天前生成的文件
如果找到这样的文件就删除
2 发表于 2011-01-15 02:55 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@echo off
set P=2
set "r=d:\指定目录"
for /f "tokens=1-3 delims=-:/ " %%a in ("%date%") do set Y=%%a&set M=%%b&set D=%%c
if %M:~0,1%==0 set M=%M:~1%
if %D:~0,1%==0 set D=%D:~1%
set/a D-=P
if %D% leq 0 call:D %D%
set M=0%M%&set D=0%D%
setlocal enabledelayedexpansion
for /f "tokens=1,3*" %%a in ('dir /a-d/s/tc "%r%"') do (
setlocal enabledelayedexpansion
set a=%%a&set c=%%c
if not "!a!"=="!a:-=!" if "!a!" lss "%Y%-%M:~-2%-%D:~-2%" del /a/f "!c!"
Endlocal
)
exit
:D
set/a M-=1,Y-=!M,M+=!M*12,"C=!(M-4)|!(M-6)|!(M-9)|!(M-11)","D+=!(M-2)*(28+(!(Y%%4)&!!(Y%%100))|!(Y%%400))+C*30+(!!(M-2)&!C)*31"
if %D% leq 0 goto:D


[ Last edited by Hanyeguxing on 2011-1-15 at 03:00 ]
论坛跳转: