中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于数据库压缩的问题,这个有挑战性,请高手进。
作者:
标题: 关于数据库压缩的问题,这个有挑战性,请高手进。 上一主题 | 下一主题
zmrmyll
新手上路





积分 2
发帖 2
注册 2009-5-19
状态 离线
『楼 主』:  关于数据库压缩的问题,这个有挑战性,请高手进。

用SQL 自动备份数据库 生成在D:\BAK\ 目录里,生成的文件名是 MyDb_20090615完全备份.BAK 。

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

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

怎么让RAR自动识别,然后压缩该数据库。

2009-6-16 00:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 2 楼』:  

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 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-6-17 02:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zmrmyll
新手上路





积分 2
发帖 2
注册 2009-5-19
状态 离线
『第 3 楼』:  

谢了,试验成功了!不过还有一个问题,我想把备份的最新文件传到另一个机子上去做异地备份,如何做呢?自动的。。 这个目录下有若干备份的数据库,如何才能识别哪个是最新的?

[ Last edited by zmrmyll on 2009-6-17 at 23:25 ]

2009-6-17 23:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 4 楼』:  

以上面批处理为例子,做出的备份压缩名称就是D:\BAK\MyDb_20090617.rar,这个就应该是最新的。如果一天进行了多次备份压缩,则可以使用:
@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
for /f "delims=" %%i in ('dir "D:\BAK\MyDb_*.rar" /b /s /od /a-d') do set ye=%%i
set gu0=hanyeguxing\
set gu1=UC30194447
set gu2=UC34886634
set xing=Computer
net use \\%xing%\ipc$ "%gu2%" /user:"%gu1%" >nul 2>nul
copy "%ye%" "\\%xing%\F$\%gu0%" /v /y /z
net use \\%xing%\ipc$ /del >nul 2>nul
pause&exit

::说明:该批处理仅用于局域网文件传输
::变量gu0为要传输的路径,这里设置为远程计算机的的F:\hanyeguxing\
::变量gu1为IPC$连接的用户名
::变量gu2为IPC$连接的用户的密码
::变量xing为指定远程计算机的名称或 IP 地址。
[ Last edited by Hanyeguxing on 2009-6-18 at 13:18 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-6-18 00:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: