第 31 楼
发表于 2008-05-26 15:26 · 中国 江苏 南京 联通
初级用户
★★
E生迅徒
积分 118 发帖 56 注册 2008-05-22 16:34 18年会员 UID 119421 性别 男 来自 南京
状态 离线
银牌会员 【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%
各位大虾,帮帮忙,谢谢
第 32 楼
发表于 2008-05-26 15:32 · 中国 江苏 南京 联通
初级用户
★★
E生迅徒
积分 118 发帖 56 注册 2008-05-22 16:34 18年会员 UID 119421 性别 男 来自 南京
状态 离线
Originally posted by 26933062 at 2008-5-23 04:10 PM:
经验就是:大量练习,及多看别人的帖
要在其它位置运行bat,考虑的问题要多一点,以下代码未测试。。。
:
@echo off&setlocal enabledelayedexpansi ...
这个是最终的P
第 33 楼
发表于 2008-05-26 15:39 · 中国 江苏 南京 联通
初级用户
★★
E生迅徒
积分 118 发帖 56 注册 2008-05-22 16:34 18年会员 UID 119421 性别 男 来自 南京
状态 离线
呵呵,自己搞明白了
在if %mm% leq 0 set /a nn=1前面多添加一种case就好了
添加:
if %mm% gtr 0 set /a nn=0
第 34 楼
发表于 2008-05-26 15:42 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
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
)
致精致简!
第 35 楼
发表于 2008-05-26 15:58 · 中国 江苏 南京 电信
初级用户
★★
E生迅徒
积分 118 发帖 56 注册 2008-05-22 16:34 18年会员 UID 119421 性别 男 来自 南京
状态 离线
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
)
啊??您好像没有改什么嘛,跟原来的对比,没有看出来呢,呵呵
第 36 楼
发表于 2008-05-26 16:16 · 中国 江苏 南京 电信
初级用户
★★
E生迅徒
积分 118 发帖 56 注册 2008-05-22 16:34 18年会员 UID 119421 性别 男 来自 南京
状态 离线
银牌会员 【26933062】大虾,还有顺便把我那样改为什么不对,给稍微解析一下,拜托了!
無求一生光輝 唯朢鬥志不會斷
第 37 楼
发表于 2008-05-26 16:20 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
第 38 楼
发表于 2008-05-26 16:25 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
第 39 楼
发表于 2008-05-26 16:30 · 中国 江苏 南京 联通
初级用户
★★
E生迅徒
积分 118 发帖 56 注册 2008-05-22 16:34 18年会员 UID 119421 性别 男 来自 南京
状态 离线
有错的!我描述下问题:
假如现在是6月份了,那么我们应该将200801以前的文件和文件夹删除,对吧?
可是现在不是这样的,结果是只将200701之前的文件和文件夹删除了。
时间计算那边出了问题,貌似!您给看看
無求一生光輝 唯朢鬥志不會斷
第 40 楼
发表于 2008-05-26 16:33 · 中国 江苏 南京 联通
初级用户
★★
E生迅徒
积分 118 发帖 56 注册 2008-05-22 16:34 18年会员 UID 119421 性别 男 来自 南京
状态 离线
等一下,我再仔细确认下!!
無求一生光輝 唯朢鬥志不會斷
第 41 楼
发表于 2008-05-26 16:35 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
怎么可能?
你测试以下代码。。。
:
@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
致精致简!
第 42 楼
发表于 2008-05-26 16:38 · 中国 江苏 南京 联通
初级用户
★★
E生迅徒
积分 118 发帖 56 注册 2008-05-22 16:34 18年会员 UID 119421 性别 男 来自 南京
状态 离线
汗~~~~~~~~~~
怎么现在测试的结果跟刚才不一样了!应该是没有问题的!
真的对不起啊!浪费你的时间了
不过真的很奇怪啊,我自己在看看刚才怎么回事
無求一生光輝 唯朢鬥志不會斷
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正