中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 01:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助,如何找出100分钟前修改过的文件呢? 查看 2,103 回复 24
楼 主 求助,如何找出100分钟前修改过的文件呢? 发表于 2008-05-31 16:45 ·  中国 四川 成都 电信
新手上路
积分 16
发帖 7
注册 2008-05-05 17:49
18年会员
UID 117829
性别 男
状态 离线
也就是文件的修改时间是100分钟以前的都列出来,在论坛里找了半天,实在没有,大家帮帮想想办法
2 发表于 2008-05-31 17:07 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
思路。。。 当前时间减去100分钟。。。与当前日期一起赋值给n
for /r 遍历整个目录,if "%%~ta" lss "%n%" echo %%a

就是这个思路,想了半天没想出来如何当前时间减去100
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
3 发表于 2008-05-31 17:22 ·  中国 四川 成都 电信
新手上路
积分 16
发帖 7
注册 2008-05-05 17:49
18年会员
UID 117829
性别 男
状态 离线
是呀,如果正好两天之间,比较麻烦,有个forfile,但是他不能精确到小时,或分钟,只能是天
4 发表于 2008-05-31 17:26 ·  中国 四川 成都 电信
新手上路
积分 16
发帖 7
注册 2008-05-05 17:49
18年会员
UID 117829
性别 男
状态 离线
linux下的find命令有-mmin 参数可以修改,windows真的还不知道怎么办?大家给想想办法
5 发表于 2008-05-31 17:36 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
花了半个多小时~ 终于搞定了~试下可以不

@echo off&setlocal enabledelayedexpansion
set/a n=%time:~3,2%+60
if %n% lss 100 (
set/a n=100-%n%,m=!time:~0,2!-2
set/a n=60-!n!
) else (
set/a n=100-%n%,set/a m=!time:~0,2!-1
set/a n=60-!n!
)
set n=%date:~0,-4% %m%:%n%
for /r c:\ %%a in (*.*) do if "%%~ta" leq "%n% echo %%a
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
6 发表于 2008-05-31 17:43 ·  中国 四川 成都 电信
新手上路
积分 16
发帖 7
注册 2008-05-05 17:49
18年会员
UID 117829
性别 男
状态 离线
好,先谢谢了
7 发表于 2008-05-31 17:44 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
错了。。。。。 试了下。。。当60+当前时间的分值大于100的情况下 会出错了
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
8 发表于 2008-05-31 17:51 ·  中国 四川 成都 电信
新手上路
积分 16
发帖 7
注册 2008-05-05 17:49
18年会员
UID 117829
性别 男
状态 离线
哦,我还没有试验到那里呢,。。。。。
9 发表于 2008-05-31 18:07 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
if "%time:~3,2%" lss "40" (
set/a n=!time:~3,2!+60
set/a n=100-!n!,m=!time:~0,2!-2
set/a n=60-!n!
) else (
set/a n=100-!time:~3,2!
set/a n=60-!n!
if "!n:~1,1!" equ "" set n=0!n!
set/a m=!time:~0,2!-1
)

set n=%date:~0,-4% %m%:%n%
for /r c:\ %%a in (*.*) do if "%%~ta" leq "%n%" echo %%a
pause

这回对了~

[ Last edited by pusofalse on 2008-5-31 at 06:09 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
bibaboemail +1 2008-05-31 18:09
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
10 发表于 2008-05-31 18:10 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
计算时间还真是麻烦,又要判断是否垮天,还要判断是否00点。
初步测试ok。。望简化。。。

@echo off
for /f "tokens=1-3 delims=-/\:. " %%a in ("%date%") do (
set /a yy=%%a,mm=%%b,dd=100%%c%%100
)
for /f "tokens=1,2 delims=.: " %%a in ("%time%") do (
set /a d=100%%a%%100,s=^(^(d-1^)+24^)%%24,f=100%%b%%100-40
)
if %f% lss 0 set /a s-=1
set /a f=(f+60)%%60
if %s% gtr %d% set /a dd-=1
setlocal enabledelayedexpansion
for %%a in (mm dd s f) do set %%a=0!%%a!&set "%%a=!%%a:~-2!"
endlocal&set "t=%yy%-%mm%-%dd% %s%:%f%"
for /r %%a in (*) do if "%%~ta" leq "%t%" echo del/q "%%a"
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
bibaboemail +1 2008-05-31 18:14
致精致简!
11 发表于 2008-05-31 18:11 ·  中国 四川 成都 电信
新手上路
积分 16
发帖 7
注册 2008-05-05 17:49
18年会员
UID 117829
性别 男
状态 离线
麻烦写一个完整,我主要显示指定目录下,100分钟以前修改过的文件名称

非常感谢
12 发表于 2008-05-31 18:12 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
我的没有判断是否跨天。。。。 也没有判断是否00点。。。建议楼主不要在午夜使用~
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
13 发表于 2008-05-31 18:17 ·  中国 四川 成都 电信
新手上路
积分 16
发帖 7
注册 2008-05-05 17:49
18年会员
UID 117829
性别 男
状态 离线
不管怎么还是谢谢大家,我先慢慢消化
14 发表于 2008-05-31 18:17 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
100分钟以前修改过的文件名?
看来我走题了,
我的是显示修改时间小于100分钟以前的文件名。
致精致简!
15 发表于 2008-05-31 18:33 ·  中国 江西 南昌 电信
初级用户
积分 82
发帖 34
注册 2008-04-29 19:37
18年会员
UID 117307
性别 男
来自 江西
状态 离线
问下这个set/a !变量!中的"!"是怎么用的?
论坛跳转: