中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 20:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 判断文件日期以便根据条件判断方便删除?
楼 主 判断文件日期以便根据条件判断方便删除? 发表于 2008-07-28 17:24 ·  中国 福建 厦门 电信
新手上路
积分 18
发帖 7
注册 2008-05-10 16:10
UID 118339
性别 男
状态 离线
现有一需求,硬盘存有一定的文件,日积月累,就得很多了,哪位高手能否来一个P处理,运行后
1、自动扫描指定目录内的文件—>2、根据设定的日期(可以一开始就在代码中写死),判断年月日日期形式—>3、将符合条件的文件删除
就这样子而已,谢谢!辛苦一下各路高手

比如说:
----------------------------
isoemu 2 KB 配置设置 2004-11-09 22:40
isogrub 6,880 KB WinImage ISO 2008-03-11 21:55
bootfont 316 KB BIN File 2008-03-18 06:00
NTDETECT 47 KB 应用程序 2008-03-18 06:00
ntldr 300 KB 系统文件 2008-03-18 06:00
BOOTSECT 1 KB DOS 文件 2008-03-25 11:43
IO 0 KB 系统文件 2008-03-25 12:03
MSDOS 0 KB 系统文件 2008-03-25 12:03
rising 1 KB 配置设置 2008-03-25 17:04
boot 1 KB 配置设置 2008-07-19 20:06
pagefile 1,548,288 KB 系统文件 2008-07-28 09:04
-----------------------------------------
以上只有日期这部分是关建的,让P判断
介于‘2008-07-19’与‘2008-03-18’之间的文件(2008-03-18~2008-07-19),然后将这些文件删除!
2 发表于 2008-07-28 17:29 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
bootfont 316 KB BIN File 2008-03-18 06:00
NTDETECT 47 KB 应用程序 2008-03-18 06:00
ntldr 300 KB 系统文件 2008-03-18 06:00
BOOTSECT 1 KB DOS 文件 2008-03-25 11:43
IO 0 KB 系统文件 2008-03-25 12:03
MSDOS

这几个文件,如果在系统分区的根目录下的话,是有用的。不能删。
3 发表于 2008-07-28 17:41 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
@echo off
set DateB=2008-07-19
set DateE=2008-03-18
setlocal enabledelayedexpansion
for %%a in ("C:\test\*.*") do (
set t=%%~ta
set FileDate=!t:~0,10!
if !FileDate! geq %DateB% (
if !FileDate! leq %DateE% (
del /q "%%a"
)
)
)
4 发表于 2008-07-28 17:48 ·  中国 福建 厦门 电信
新手上路
积分 18
发帖 7
注册 2008-05-10 16:10
UID 118339
性别 男
状态 离线
我只是举个例子,不是要删那些文件啊
5 发表于 2008-07-28 17:52 ·  中国 福建 厦门 电信
新手上路
积分 18
发帖 7
注册 2008-05-10 16:10
UID 118339
性别 男
状态 离线
Originally posted by HAT at 2008-7-28 05:41 PM:
@echo off
set DateB=2008-07-19
set DateE=2008-03-18
setlocal enabledelayedexpansion
for %%a in ("C:\test\*.*") do (
set t=%%~ta
set FileDate=!t:~0,10!
if !FileDate! geq ...


没有删除哦,我改过日期了
6 发表于 2008-07-28 20:09 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
把你的代码贴出来看看?
7 发表于 2008-07-28 21:33 ·  中国 福建 厦门 电信
新手上路
积分 18
发帖 7
注册 2008-05-10 16:10
UID 118339
性别 男
状态 离线
Originally posted by HAT at 2008-7-28 08:09 PM:
把你的代码贴出来看看?


@echo off
set DateB=2008-07-28
set DateE=2008-07-25
setlocal enabledelayedexpansion
for %%a in ("d:\ccclient\send\*.*") do (
set t=%%~ta
set FileDate=!t:~0,10!
if !FileDate! geq %DateB% (
if !FileDate! leq %DateE% (
del /q "%%a"
)
)
)
8 发表于 2008-07-28 21:40 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
把@echo off删除,开始,运行,cmd,test.bat
结果贴出来看看
9 发表于 2008-07-28 22:41 ·  中国 湖南 株洲 联通
初级用户
积分 71
发帖 34
注册 2007-12-20 23:57
UID 106311
性别 男
状态 离线
C:\test>set DateB=2008-07-28

C:\test>set DateE=2008-03-28

C:\test>setlocal enabledelayedexpansion

C:\test>for %a in ("C:\test\*.*") do (
set t=%~ta
set FileDate=!t:~0,10!
if !FileDate! GEQ 2008-07-28 (if !FileDate! LEQ 2008-03-28 (del /q "%a" ) )
)

C:\test>(
set t=2008-07-28 22:29
set FileDate=!t:~0,10!
if !FileDate! GEQ 2008-07-28 (if !FileDate! LEQ 2008-03-28 (del /q "C:\test\tex
t1.bat" ) )
)
10 发表于 2008-07-28 22:45 ·  中国 湖南 株洲 联通
初级用户
积分 71
发帖 34
注册 2007-12-20 23:57
UID 106311
性别 男
状态 离线
有问题 :
1.只删除了文件
2.只删除了设定的文件夹当前目录下面的文件,下一级目录里面的文件没有删除
11 发表于 2008-07-28 22:54 ·  中国 湖南 株洲 联通
初级用户
积分 71
发帖 34
注册 2007-12-20 23:57
UID 106311
性别 男
状态 离线

@echo off
set DateB=2008-07-28
set DateE=2008-07-28
setlocal enabledelayedexpansion
for /r "C:\test\" %%a in (.) do (
set t=%%~ta
set FileDate=!t:~0,10!
if !FileDate! geq %DateB% (
if !FileDate! leq %DateE% (
del /q "%%a"
)
)
)

删除了下级目录下面的文件,只是对于文件夹的处理还是不知道
12 发表于 2008-07-28 23:07 ·  中国 湖南 株洲 联通
初级用户
积分 71
发帖 34
注册 2007-12-20 23:57
UID 106311
性别 男
状态 离线
Originally posted by a794685135 at 2008-7-28 10:54 PM:

@echo off
set DateB=2008-07-28
set DateE=2008-07-28
setlocal enabledelayedexpansion
for /r "C:\test\" %%a in (.) do (
set t=%%~ta
set FileDate=!t:~0,10!
if !FileDate! ...


不行不行 ,, 郁闷
13 发表于 2008-07-29 00:10 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
1、楼主没有要求删文件夹
2、楼主没有要求处理子目录的文件
14 发表于 2008-07-29 02:44 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
UID 42345
状态 离线

@echo off
for /r %%i in (*.*) do (
if not "%%i"=="%~0" (
if %%~ti geq 2008-03-18 if %%~ti leq 2008-07-28 echo del "%%i" /a/q/f>nul 2>nul
))
pause
简单!简单!再简单!
15 发表于 2008-07-29 07:21 ·  中国 福建 厦门 电信
新手上路
积分 18
发帖 7
注册 2008-05-10 16:10
UID 118339
性别 男
状态 离线
Originally posted by terse at 2008-7-29 02:44 AM:

@echo off
for /r %%i in (*.*) do (
if not "%%i"=="%~0" (
if %%~ti geq 2008-03-18 if %%~ti leq 2008-07-28 echo del "%%i" /a/q/f>nul 2>nul
))
pause


没有达到效果,为什么我测试的都不行呢?
论坛跳转: