中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 19:10
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]对以时间命名的文件进行选择删除和分类
可打印版本  2,877 / 41
第16楼 26933062 发表于 2008-05-23 14:59
银牌会员 发帖 879 积分 2,268
你如果把bat文件放在D:\tabiplaza\yado\debug文件夹里运行的话,那么我的abcd文件夹目录路径就不重要了。
你的D:\tabiplaza\yado\debug文件夹里除了你说的log文件外,还有其它文件吗?
D:\tabiplaza\yado\debug文件夹里,都还有些什么文件夹?
或者你运行下面的代码把a.txt结果贴出来看看
@echo off
for /f "delims=" %%a in ('dir/b/ad') do echo %%a>>a.txt
pause
第17楼 easonL 发表于 2008-05-23 15:13
初级用户 发帖 56 积分 118 来自 南京
现在我这边的情况是这样:
D:\tabiplaza\yado\debug下放置的是log文件和bat文件
我并没有建立abcd文件夹

跑出来的结果是:
D:\tabiplaza\yado\debug底下生成了以年月命名的文件夹,文件夹里面放置的是log文件,这个过程没有删除文件(包括过时的文件和文件夹)


另外,我看到代码里面“'dir/b/ad'‘,这句有没有关系?
第18楼 26933062 发表于 2008-05-23 15:22
银牌会员 发帖 879 积分 2,268
for /f "delims=" %%a in ('dir/b/ad') do if %%a leq %yy% rd/q/s "%%a"
这一句 是判断D:\tabiplaza\yado\debug文件夹里的文件夹若小于6个月就删除(文件夹名都是以年月为名)
你说D:\tabiplaza\yado\debug底下生成了以年月命名的文件夹,这些文件夹难道有200801以前的文件夹吗?
运行bat文件后,D:\tabiplaza\yado\debug文件夹里应该没有log文件了才对,因为小于200801的文件都删除了,大于或等于200801的文件都移动到了相应的文件夹内。
难道不是这样?
第19楼 easonL 发表于 2008-05-23 15:26
初级用户 发帖 56 积分 118 来自 南京
1、D:\tabiplaza\yado\debug文件夹里面除了log文件,没有其他文件了(当然啦,还有就是bat文件)
2、经过bat运行一把之后,D:\tabiplaza\yado\debug底下的文件夹有:
200703
200709
200801
200802
200803
200808
第20楼 26933062 发表于 2008-05-23 15:29
银牌会员 发帖 879 积分 2,268
怎么会这样呢?
你运行以下代码,把结果贴来看看。。。
:
第21楼 easonL 发表于 2008-05-23 15:30
初级用户 发帖 56 积分 118 来自 南京
不好意思,刚才没有没有看到你回复,我就回复了上面的内容

运行bat文件后,D:\tabiplaza\yado\debug文件夹里应该没有log文件,已经移到了相应的文件夹里面了,但是小于200801的文件夹依然存在!!

我突然想起来有一个情况,想跟你说下,我的系统是英文系统,这个会不会影响?
我怕系统的时间格式有差异,影响结果?
第22楼 easonL 发表于 2008-05-23 15:32
初级用户 发帖 56 积分 118 来自 南京
Originally posted by 26933062 at 2008-5-23 03:29 PM:
怎么会这样呢?
你运行以下代码,把结果贴来看看。。。
:
第23楼 26933062 发表于 2008-05-23 15:33
银牌会员 发帖 879 积分 2,268
啊?????
有没有搞错啊??
确实是时间格式导致的。
你再运行
echo %date%
结果是什么?

[ Last edited by 26933062 on 2008-5-23 at 03:35 PM ]
第24楼 easonL 发表于 2008-05-23 15:35
初级用户 发帖 56 积分 118 来自 南京
Originally posted by 26933062 at 2008-5-23 03:33 PM:
啊?????
有没有搞错啊??
你再运行
echo %date%
结果是什么?



echo出来的结果:
2008/05/23
第25楼 26933062 发表于 2008-05-23 15:37
银牌会员 发帖 879 积分 2,268
for /f "tokens=1,2 delims=:-\. " %%a in ("%date%") do (
把这句改为
for /f "tokens=1,2 delims=:-/. " %%a in ("%date%") do (
即可
或再复制4楼代码运行
第26楼 easonL 发表于 2008-05-23 15:40
初级用户 发帖 56 积分 118 来自 南京
哇!!!!!!
太强大了,果然好了!!
呵呵,是什么原因呢?能不能给解析一下?
第27楼 26933062 发表于 2008-05-23 15:51
银牌会员 发帖 879 积分 2,268
delims=:-\. 我之前为确保无误用了:-\.这4种符号来切割%date%为的是把日期分成年月日,却不想你的日期分割符偏偏是 /
唉!。。。 百密一疏。。。
其实只要delims=/ 就可以了的。

[ Last edited by 26933062 on 2008-5-23 at 03:52 PM ]
第28楼 easonL 发表于 2008-05-23 16:00
初级用户 发帖 56 积分 118 来自 南京
首先表示感谢!!非常谢谢你的帮忙!
呵呵,本来写代码就是需要经过大量debug的,纯属正常!只是不是自己的环境下调试,这个错误被放大了而已!

对P的运行机制不懂,还麻烦您继续答疑一下!
1、我们现在把bat放在D:\tabiplaza\yado\debug下,如果我在环境变量中加入
D:\tabiplaza\yado\debug,这样的话是不是就可以随处运行bat文件了?
可现在问题是我如果想改变bat文件的路径,比如我想放在C:\底下,而D:\tabiplaza\yado\debug底下还是放log文件,该怎么改变?

2、学习P的准备入门阶段,据我自己的学习经验,必须大量练习外,您还有没有什么特别科学的经验,可不可以指教一下,谢谢
第29楼 26933062 发表于 2008-05-23 16:10
银牌会员 发帖 879 积分 2,268
经验就是:大量练习,及多看别人的帖
要在其它位置运行bat,考虑的问题要多一点,以下代码未测试。。。
:
第30楼 easonL 发表于 2008-05-23 16:13
初级用户 发帖 56 积分 118 来自 南京
恩,好的,谢谢,继续学习中!碰到问题在向您请教!
不胜感激!
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023