中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 01:32
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 关于数据库压缩的问题,这个有挑战性,请高手进。
可打印版本  970 / 3
第1楼 zmrmyll 发表于 2009-06-16 00:48
新手上路 发帖 2 积分 2
关于数据库压缩的问题,这个有挑战性,请高手进。
用SQL 自动备份数据库 生成在D:\BAK\ 目录里,生成的文件名是 MyDb_20090615完全备份.BAK 。

现在想压缩数据库,并且删除原文件。

问题就是 自动备份的数据库名字每天都变 今天是MyDb_20090615完全备份.BAK 明天就是MyDb_20090616完全备份.BAK

怎么让RAR自动识别,然后压缩该数据库。
第2楼 Hanyeguxing 发表于 2009-06-17 02:17
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
cmd /c "C:\Program Files\WinRAR\WinRAR.exe" m -ag -cfg- -ibck -inul -m5 -s -y "D:\BAK\MyDb_" "D:\BAK\MyDb_%date:~0,4%%date:~5,2%%date:~8,2%完全备份.BAK"

如果觉得上面的命令过长,可以使用批处理:

@echo off
set han=D:\BAK\MyDb_%date:~0,4%%date:~5,2%%date:~8,2%
"C:\Program Files\WinRAR\WinRAR.exe" m -afrar -cfg- -ibck -inul -m5 -or -s -y %han% %han%完全备份.BAK
pause&exit


说明:
%date%变量示例为2009-06-17 星期三


winrar的命令开关说明:
命令 M - 移动文件和文件夹到压缩文件(即压缩后删除源目标文件)
开关 -AG - 以当前日期与时间生成压缩文件名
开关 -AF<类型> - 指定压缩文件格式
开关 -CFG- - 忽略默认配置和环境变量
开关 -DR - 压缩后清除文件。删除文件前使用0字节覆盖文件数据,防止文件被恢复。
开关 -IBCK - 在后台运行 WinRAR
开关 -INUL - 禁用错误信息
开关 -IOFF - 关闭 PC 电源
开关 -M<n> - 设置压缩方式
开关 -OR - 如果相同名字的文件已经存在则自动重命名解压的文件。
开关 -S - 创建固实压缩文件
开关 -Y - 假设全部的询问回应皆为“是”
开关 -TA<日期> - 只处理指定日期之后修改的文件
开关 -TB<日期> - 处理制定日期之前修改的文件
开关 -TN<时间> - 处理比指定时间新的文件
开关 -TO<时间> - 处理比指定时间旧的文件


楼主注意发贴格式和主题,免得俺回完了总被删。。。

[ Last edited by Hanyeguxing on 2009-6-17 at 02:39 ]
第3楼 zmrmyll 发表于 2009-06-17 23:10
新手上路 发帖 2 积分 2
谢了,试验成功了!不过还有一个问题,我想把备份的最新文件传到另一个机子上去做异地备份,如何做呢?自动的。。 这个目录下有若干备份的数据库,如何才能识别哪个是最新的?

[ Last edited by zmrmyll on 2009-6-17 at 23:25 ]
第4楼 Hanyeguxing 发表于 2009-06-18 00:19
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
以上面批处理为例子,做出的备份压缩名称就是D:\BAK\MyDb_20090617.rar,这个就应该是最新的。如果一天进行了多次备份压缩,则可以使用:



[ Last edited by Hanyeguxing on 2009-6-18 at 13:18 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023