中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]关于RAR的命令和日期命令结合的使用?
作者:
标题: [求助]关于RAR的命令和日期命令结合的使用? 上一主题 | 下一主题
xiaoliwind
初级用户





积分 43
发帖 32
注册 2005-8-7
状态 离线
『楼 主』:  [求助]关于RAR的命令和日期命令结合的使用?

是这样的:
在我的服务器D盘的LogFiles目录下有很多IIS的日志文件.但是每天的日志有3G多,但是如果用RAR压缩后就只有90多M.
所以我就想将每天的日志打包,然后在删除那天的日志.

比如我的D盘是这样的:
D:\LogFiles\W3SVC1314520 下面有每天产生的日志文件
ex090420.log
ex090421.log
ex090422.log

我现在的目的就是在每天早晨8点30分(这个我用任务计划实现),压缩并删除先一天的日志.
批处理如下:
rar_iislog.bat
@echo off
:: 如果今天是25日,那么今天早晨压缩并删除的内容如下
C:\Progra~1\WinRAR\WinRAR.exe a -m1 -df D:\backup\log0424.rar D:\LogFiles\W3SVC1314520\ex090424.log
exit


然后我将它用任务计划每天执行.
-------------------------------------------------------
但是大家有没发现,我只能压缩并删除今天.要是26号了呢?
我不能又改成这样的:
C:\Progra~1\WinRAR\WinRAR.exe a -m1 -df D:\backup\log0425.rar D:\LogFiles\W3SVC1314520\ex090425.log

我希望是有一个自动获取日期并用他命名的办法?

谢谢大家了.

[ Last edited by xiaoliwind on 2009-4-25 at 02:43 ]

2009-4-25 02:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaoliwind
初级用户





积分 43
发帖 32
注册 2005-8-7
状态 离线
『第 2 楼』:  

C:\Progra~1\WinRAR\WinRAR.exe a -m1 -df D:\backup\log0425.rar D:\LogFiles\W3SVC1314520\ex090425.log

这里的两个0425 我想要的是自动根据今天的日期减一来命名.

2009-4-25 02:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaoliwind
初级用户





积分 43
发帖 32
注册 2005-8-7
状态 离线
『第 3 楼』:  

我的电脑的
echo %date%
显示的是:
2009-04-25 星期六

2009-4-25 03:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaoliwind
初级用户





积分 43
发帖 32
注册 2005-8-7
状态 离线
『第 4 楼』:  

C:\Progra~1\WinRAR\WinRAR.exe a -m1 -df D:\backup\log%date:~5,2%%date:~8,2%.rar D:\LogFiles\W3SVC1314520\ex09%date:~5,2%%date:~8,2%.log

这个也只是压缩并删除今天的,我要的是今天的日期减一怎么办呢?

2009-4-25 03:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaoliwind
初级用户





积分 43
发帖 32
注册 2005-8-7
状态 离线
『第 5 楼』:  

自己已经弄好了,请斑竹结贴.谢谢.

批处理如下:
rar_iislog.bat
@echo off
:: 如果今天是25日,那么今天早晨压缩并删除24的日志
set /a DD=%date:~8,2%-1
C:\Progra~1\WinRAR\WinRAR.exe a -m1 -df D:\backup\log%date:~5,2%%DD%.rar D:\LogFiles\W3SVC1314520\ex09%date:~5,2%%DD%.log
exit

2009-4-25 04:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 6 楼』:  

如果是2009-05-1就会出问题了,对于日期计算,建议先翻翻论坛



2009-4-25 05:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xiaoliwind
初级用户





积分 43
发帖 32
注册 2005-8-7
状态 离线
『第 7 楼』:  

是的,今天早晨来看,批处理出了问题.
2009年5月3日的 出了问题.

2009-5-2 21:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 8 楼』:  

用DATEX这个工具
或者调VBS计算日期,代码会少很多。




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-5-2 22:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 9 楼』:  

  1. @echo off&setlocal enabledelayedexpansion
  2. set cd=%date:~2,2%%date:~5,2%%date:~8,2%
  3. for /f %%i in ('dir/a/b *.log^|findstr "^ex[0-9][0-9][0-9][0-9][0-9][0-9]\.log$"') do (
  4.     set d=%%i
  5.     set  d=!d:~2,6!
  6.     if !d! lss !cd! echo %%i 是令天以前的日志文件
  7. )


2009-5-2 22:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaoliwind
初级用户





积分 43
发帖 32
注册 2005-8-7
状态 离线
『第 10 楼』:  

楼上的,运行后提示 “命令语法不正确"

2009-8-17 22:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaoliwind
初级用户





积分 43
发帖 32
注册 2005-8-7
状态 离线
『第 11 楼』:  

@echo off&setlocal enabledelayedexpansion
set cd=%date:~2,2%%date:~5,2%%date:~8,2%
for /f %%i in ('dir/a/b *.log ^|findstr "ex[0-9][0-9][0-9][0-9][0-9][0-9].log"') do (
set d=%%i
set d=!d:~2,6!
set e=!d:~2,4!
if !d! lss !cd! (这里是命令)
)

成功!谢谢楼上的!

2009-8-17 23:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: