![]() |
中国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出来的结果: 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 |