中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 12:48
48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 求根据时间删除文件:删除创建日期大于1天文件
可打印版本  1,631 / 13
第1楼 yhshiro 发表于 2008-02-10 03:11
初级用户 发帖 59 积分 130
求根据时间删除文件:删除创建日期大于1天文件
如题:我想把我某个盘内 创建日期大于1天的文件删除掉。。。只要是大于一天的文件,不管什么格式都删除掉。。。

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

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


[ Last edited by HAT on 2008-9-27 at 10:20 ]
第2楼 terse 发表于 2008-02-10 03:33
银牌会员 发帖 946 积分 2,404
前两天发在论坛上说测试不成功 你在看看
@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"
)
第3楼 yhshiro 发表于 2008-02-11 00:11
初级用户 发帖 59 积分 130
不行,能显示删除,但是删除不了
第4楼 terse 发表于 2008-02-11 01:51
银牌会员 发帖 946 积分 2,404
Originally posted by yhshiro at 2008-2-11 00:11:
不行,能显示删除,但是删除不了

去掉 echo del "%~1" 改为 del "%~1"
第5楼 yhshiro 发表于 2008-02-11 20:27
初级用户 发帖 59 积分 130
还是不行....现在连显示都不显示了,直接完啦./.
第6楼 terse 发表于 2008-02-11 20:40
银牌会员 发帖 946 积分 2,404
先前能显示的时候 显示的是什么内容?可否发上来?
第7楼 yhshiro 发表于 2008-02-11 21:02
初级用户 发帖 59 积分 130
显示,要删除的文件名

del "f:\XXXXXXX.XX"
就是这样的内容
第8楼 yhshiro 发表于 2008-02-11 21:05
初级用户 发帖 59 积分 130
现在好了,可以用...
但是之能删除指定盘下的文件,不能删除文件夹内的文件
第9楼 terse 发表于 2008-02-11 21:17
银牌会员 发帖 946 积分 2,404
这样呢?
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 "^*$">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 ]
第10楼 yhshiro 发表于 2008-02-11 21:26
初级用户 发帖 59 积分 130
再给个简单点的吧,
我就要个运行后删除f:\下所有文件大于1天的文件,包括文件夹内的....

谢谢了哈....

我不回批处理
第11楼 yhshiro 发表于 2008-02-11 21:44
初级用户 发帖 59 积分 130
The filename, directory name, or volume label syntax is incorrect.


什么意思....
第12楼 terse 发表于 2008-02-11 21:45
银牌会员 发帖 946 积分 2,404
@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
)
第13楼 yhshiro 发表于 2008-02-11 21:48
初级用户 发帖 59 积分 130
谢谢阿,已经可以用了~~~

多谢
第14楼 zcnvnv 发表于 2008-02-12 18:18
初级用户 发帖 36 积分 114
用for取dir的日期和文件名,判断,该删的del 文件名,不该删的过。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023