中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]对以时间命名的文件进行选择删除和分类
« [1] [2] [3] »
作者:
标题: [求助]对以时间命名的文件进行选择删除和分类 上一主题 | 下一主题
easonL
初级用户

E生迅徒


积分 118
发帖 56
注册 2008-5-22
来自 南京
状态 离线
『第 31 楼』:  

银牌会员 【26933062】看见了的话,帮我完善下!!!!谢谢

那天测试的时候,漏了一个case,就是比如现在是6月份了,那么我们应该将200801前的文件和文件夹删除!

但是现在的情况是这样的,计算出来的日期是200701前的东西删除!这不对

好像是这段命令的原因,帮忙分析下(好像if %mm% gtr 0 这种情况也做了日期转换了)

if %mm% leq 0 set /a nn=1
set /a m=(12+mm)%%12,y=yy-nn
if %m% equ 0 set m=12
set m=0%m%
set yy=%y%%m:~-2%




各位大虾,帮帮忙,谢谢

2008-5-26 15:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
easonL
初级用户

E生迅徒


积分 118
发帖 56
注册 2008-5-22
来自 南京
状态 离线
『第 32 楼』:  



  Quote:
Originally posted by 26933062 at 2008-5-23 04:10 PM:
经验就是:大量练习,及多看别人的帖
要在其它位置运行bat,考虑的问题要多一点,以下代码未测试。。。
:[code]
@echo off&setlocal enabledelayedexpansi ...

这个是最终的P

2008-5-26 15:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
easonL
初级用户

E生迅徒


积分 118
发帖 56
注册 2008-5-22
来自 南京
状态 离线
『第 33 楼』:  

呵呵,自己搞明白了
在if %mm% leq 0 set /a nn=1前面多添加一种case就好了

添加:
if %mm% gtr 0 set /a nn=0

2008-5-26 15:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 34 楼』:  



  Quote:
Originally posted by easonL at 2008-5-26 15:39:
呵呵,自己搞明白了
在if %mm% leq 0 set /a nn=1前面多添加一种case就好了

添加:
if %mm% gtr 0 set /a nn=0

那样是不对的,
改这里
for /f "tokens=1,2 delims=:-\/. " %%a in ("%date%") do (
   set /a yy=%%a,mm=100%%b%%100-5
)



致精致简!
2008-5-26 15:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
easonL
初级用户

E生迅徒


积分 118
发帖 56
注册 2008-5-22
来自 南京
状态 离线
『第 35 楼』:  



  Quote:
Originally posted by 26933062 at 2008-5-26 03:42 PM:

那样是不对的,
改这里
for /f "tokens=1,2 delims=:-\/. " %%a in ("%date%") do (
   set /a yy=%%a,mm=100%%b%%100-5
)

啊??您好像没有改什么嘛,跟原来的对比,没有看出来呢,呵呵

2008-5-26 15:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
easonL
初级用户

E生迅徒


积分 118
发帖 56
注册 2008-5-22
来自 南京
状态 离线
『第 36 楼』:  

银牌会员 【26933062】大虾,还有顺便把我那样改为什么不对,给稍微解析一下,拜托了!



無求一生光輝 唯朢鬥志不會斷
2008-5-26 16:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 37 楼』:  

计算部分好像确实有误,容我想想。。



致精致简!
2008-5-26 16:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 38 楼』:  

没错啊!
你现在是什么问题?



致精致简!
2008-5-26 16:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
easonL
初级用户

E生迅徒


积分 118
发帖 56
注册 2008-5-22
来自 南京
状态 离线
『第 39 楼』:  

有错的!我描述下问题:

假如现在是6月份了,那么我们应该将200801以前的文件和文件夹删除,对吧?

可是现在不是这样的,结果是只将200701之前的文件和文件夹删除了。


时间计算那边出了问题,貌似!您给看看



無求一生光輝 唯朢鬥志不會斷
2008-5-26 16:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
easonL
初级用户

E生迅徒


积分 118
发帖 56
注册 2008-5-22
来自 南京
状态 离线
『第 40 楼』:  

等一下,我再仔细确认下!!



無求一生光輝 唯朢鬥志不會斷
2008-5-26 16:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 41 楼』:  

怎么可能?
你测试以下代码。。。
:
@echo off
::下面是假设当前日期为2008年6月,可自行修改测试
set date=2008/6
::::::::::::::::::::::::::::::
for /f "tokens=1,2 delims=:-\/. " %%a in ("%date%") do (
   set /a yy=%%a,mm=100%%b%%100-5
)
if %mm% leq 0 set /a nn=1
set /a m=(12+mm)%%12,y=yy-nn
if %m% equ 0 set m=12
set m=0%m%
set yy=%y%%m:~-2%
echo.&echo 删除 %yy% 以前的文件(含%yy%)
echo.&pause




致精致简!
2008-5-26 16:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
easonL
初级用户

E生迅徒


积分 118
发帖 56
注册 2008-5-22
来自 南京
状态 离线
『第 42 楼』:  

汗~~~~~~~~~~
怎么现在测试的结果跟刚才不一样了!应该是没有问题的!
真的对不起啊!浪费你的时间了

不过真的很奇怪啊,我自己在看看刚才怎么回事



無求一生光輝 唯朢鬥志不會斷
2008-5-26 16:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: