中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求根据时间删除文件:删除创建日期大于1天文件
作者:
标题: 求根据时间删除文件:删除创建日期大于1天文件 上一主题 | 下一主题
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『楼 主』:  求根据时间删除文件:删除创建日期大于1天文件

如题:我想把我某个盘内 创建日期大于1天的文件删除掉。。。只要是大于一天的文件,不管什么格式都删除掉。。。

谁能弄个批处理给我用用啊??

───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字
说明:原标题"求一个根据时间删除文件的批处理"不利于论坛搜索
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-9-27 at 10:20 ]

2008-2-10 03:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 2 楼』:  

前两天发在论坛上说测试不成功  你在看看
@echo off
SET/p TT=输入天数:
SET/p PH=输入路径:
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 %%i in ("%PH%\*") do set t=%%~ti &&call :loop "%%~fi"
pause
goto :eof
:loop
if not "%~1" == "%~f0" (
IF %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% echo del "%~1"
)



简单!简单!再简单!
2008-2-10 03:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 3 楼』:  

不行,能显示删除,但是删除不了

2008-2-11 00:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by yhshiro at 2008-2-11 00:11:
不行,能显示删除,但是删除不了

去掉 echo del "%~1" 改为 del "%~1"



简单!简单!再简单!
2008-2-11 01:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 5 楼』:  

还是不行....现在连显示都不显示了,直接完啦./.

2008-2-11 20:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 6 楼』:  

先前能显示的时候 显示的是什么内容?可否发上来?



简单!简单!再简单!
2008-2-11 20:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 7 楼』:  

显示,要删除的文件名

del "f:\XXXXXXX.XX"
就是这样的内容

2008-2-11 21:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 8 楼』:  

现在好了,可以用...
但是之能删除指定盘下的文件,不能删除文件夹内的文件

2008-2-11 21:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 9 楼』:  

这样呢?

  Quote:
Originally posted by yhshiro at 2008-2-11 21:05:
现在好了,可以用...
但是之能删除指定盘下的文件,不能删除文件夹内的文件

@echo off
:st
cls
SET/p TT=输入天数:
SET/p PH=输入路径:
if "%tt%" =="" echo 天数不能为空&pause&goto st
if "%ph%" =="" echo 路径不能为空 &pause&goto st
echo %tt%|findstr "^[1-9][0-9]*$">nul&&goto ys||echo 天数只能是1-9&pause&goto st
:ys
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 "%ph%" %%i in (*.*) do call :loop "%%~fi"
pause
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 terse on 2008-2-11 at 09:28 PM ]



简单!简单!再简单!
2008-2-11 21:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 10 楼』:  

再给个简单点的吧,
我就要个运行后删除f:\下所有文件大于1天的文件,包括文件夹内的....

谢谢了哈....

我不回批处理

2008-2-11 21:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 11 楼』:  

The filename, directory name, or volume label syntax is incorrect.


什么意思....

2008-2-11 21:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 12 楼』:  

@echo off
SET TT=1
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"
pause
goto :eof
:loop
if not "%~1" == "%~f0" (
IF %p1%%p2%%p3% gtr %t:~0,4%%t:~5,2%%t:~8,2% del %1
)



简单!简单!再简单!
2008-2-11 21:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yhshiro
初级用户





积分 130
发帖 59
注册 2007-12-25
状态 离线
『第 13 楼』:  

谢谢阿,已经可以用了~~~

多谢

2008-2-11 21:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zcnvnv
初级用户





积分 114
发帖 36
注册 2007-12-22
状态 离线
『第 14 楼』:  

用for取dir的日期和文件名,判断,该删的del 文件名,不该删的过。

2008-2-12 18:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: