标题: 怎样实现从一个目录到另一目录的一一对应压缩
[打印本页]
作者: qwertl
时间: 2008-8-17 19:34
标题: 怎样实现从一个目录到另一目录的一一对应压缩
怎样实现从一个目录到另一目录的一一对应压缩
bak目录每天会自动生成几个包含日期的数据库bak备份文件,怎样实现在生成备份后只将今天生成的每个bak文件,压缩到另一目录,文件名不变,后缀为压缩格式rar了,主要是压缩时的文件选择问题不会处理。谢谢
作者: HAT
时间: 2008-8-17 20:09
以今天为例,把bak文件的完整名称贴出来看看?
作者: qwertl
时间: 2008-8-18 10:02
C:\Documents and Settings\Administrator>date /t
2008-08-18 星期一
2008-08-15 17:55 1,720,832 work_db_200808151755.BAK
2008-08-15 17:55 35,275,264 cl_db_200808151755.BAK
2008-08-15 17:55 2,441,728 client_db_200808151755.BAK
2008-08-15 17:56 323,240,448 ll_db_200808151755.BAK
2008-08-15 17:58 405,946,880 wyw_db_200808151756.BAK
2008-08-15 18:14 3,771,351,552 llg_db_200808151758.BAK
2008-08-15 18:26 2,595,250,688 ps_gm_db_200808151814.BAK
另一服务器:
2008-08-14 19:00 5,234,176 WanveSysLog_db_200808141900.BAK
2008-08-15 19:00 1,588,736 Dgdaj_xxwj_db_200808151900.BAK
2008-08-15 19:00 2,870,784 OA_SetNet_db_200808151900.BAK
2008-08-15 19:00 1,593,856 OA_SPNet_db_200808151900.BAK
2008-08-15 19:00 51,961,344 OA_TdcNet_db_200808151900.BAK
2008-08-15 19:00 2,388,480 WanDaBusin_db_200808151900.BAK
2008-08-15 19:00 13,880,832 Wandadotnet_db_200808151900.BAK
2008-08-15 19:00 5,234,176 WanveSysLog_db_200808151900.BAK
作者: yishanju
时间: 2008-8-18 10:45
RAR安装目录下有RAR命令可以用在批处理缩文件
作者: yishanju
时间: 2008-8-18 10:48
另一服务器:
2008-08-14 19:00 5,234,176 WanveSysLog_db_200808141900.BAK
2008-08-15 19:00 1,588,736 Dgdaj_xxwj_db_200808151900.BAK
2008-08-15 19:00 2,870,784 OA_SetNet_db_200808151900.BAK
2008-08-15 19:00 1,593,856 OA_SPNet_db_200808151900.BAK
2008-08-15 19:00 51,961,344 OA_TdcNet_db_200808151900.BAK
2008-08-15 19:00 2,388,480 WanDaBusin_db_200808151900.BAK
2008-08-15 19:00 13,880,832 Wandadotnet_db_200808151900.BAK
2008-08-15 19:00 5,234,176 WanveSysLog_db_200808151900.BAK
这么多数据库同一时间备份,不会出问题么?
我对数据库不懂
作者: qwertl
时间: 2008-8-18 10:54
只会将所有文件压缩成一个包,现在要生成一一对应的压缩包. 而且是只当天的
作者: HAT
时间: 2008-8-18 11:27
@echo off
set Today=%date:~0,4%%date:~5,2%%date:~8,2%
echo %Today%
for /f "tokens=*" %%a in ('dir /s /b "C:\test\*%Today%*.bak"') do (
echo %%a
rem 压缩的那一部分自己写吧,搞不定,就再提问。
)
作者: yishanju
时间: 2008-8-18 12:20
-_-!!
RAR有按文件创建时间压缩文件的吧
作者: yishanju
时间: 2008-8-18 12:22
RAR 3.71 版权 (c) 1993-2007 为 Alexander Roshal 所有 20 Sep 2007
共享软件版本 键入 RAR -? 或 RAR /? 或 RAR | MORE 可获得帮助
用法: rar <命令> -<开关 1> -<开关 N> <档案文件> <文件...>
<@列表文件...> <释放路径\>
<命令>
a 添加文件到档案文件中
c 添加档案文件注释
cf 添加文件注释
ch 改变档案文件参数
cw 将档案文件注释写到文件中
d 从档案文件中删除文件
e 释放文件到当前目录
f 刷新档案文件内的文件
i[参数]=<字符串> 在档案文件内查找字符串
k 锁定档案文件
l[t,b] 列表档案文件 [技术支持信息, 梗概信息]
m[f] 移动到档案文件 [仅文件]
p 打印文件到标准输出设备
r 修复档案文件
rc 重建丢失的卷
rn 重命名已归档的文件
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[模块名|-] 转换档案文件为自释放格式
t 测试档案文件
u 更新档案文件内的文件
v[t,b] 列表档案文件详细资料 [技术支持信息, 梗概信息]
x 以完整路径释放文件
<开关>
- 停止开关扫描
ac 压缩或释放后清除「存档」属性
ad 追加档案文件名到目标路径
ag[格式] 使用当前日期做为档案文件名
ao 添加带有「存档」属性的文件
ap<路径> 设置档案文件内部路径
as 同步档案文件内容
av 设置用户身份校验 (仅用于注册版)
av- 禁止用户身份校验检查
c- 禁止注释显示
cfg- 禁止读取配置
cl 转换名字为小写字母
cu 转换名字为大写字母
df 归档后删除来源文件
dh 打开共享文件
ds 禁止固定档案文件的名称排序
e[+]<属性> 设定文件排除和包含属性
ed 不添加空目录
en 不要放置 '档案文件末尾' 块
ep 排除路径
ep1 排除基准目录
ep2 扩充为完整路径
ep3 展开包含驱动器字母的完整路径
f 刷新文件
hp[密码] 加密文件数据和标头
id[c,d,p,q] 禁止讯息
ieml[地址] 通过电子邮件发送档案文件
ierr 发送所有讯息至标准错误输出设备
ilog[文件名] 记录错误讯息到文件 (只在注册版中可用)
inul 禁止所有讯息
ioff 完成操作后关闭计算机
isnd 允许声音提示
k 锁定档案文件
kb 保留损坏的文件
m<0..5> 设置压缩等级 (0-存储...3-默认...5-最大)
mc<参数> 设置高级压缩参数
md<大小> 以 KB 为单位的字典大小 (64,128,256,512,1024,2048,4096 或 A-G)
ms[扩展名;扩展名] 指定要保存的文件类型
mt<线程数> 设定线程数目
n<文件> 只包含指定的文件
n@ 从标准输入设备读取要包含的文件名
n@<列表> 包含指定列表文件中的文件
o+ 覆盖已存在的文件
o- 不覆盖已存在的文件
oc 置值 NTFS 压缩属性
or 自动重命名文件
os 保存 NTFS 数据流
ow 保存或还原所有者和组
p[口令] 设置口令
p- 不询问口令
r 包含所有子目录
r0 只包含与通配符匹配的所有子目录
ri<P>[:<S>] 设置优先级 (0-默认,1-低..15-高) 及以毫秒为单位的睡眠停顿时间
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[<N>,v[-],e] 创建固定格式档案文件
s- 禁止创建固定格式档案文件
sc<字符集>[目标] 指定字符集
sfx[模块名] 创建自释放档案文件
si[名字] 从标准输入设备 (stdin) 读取数据
sl<大小> 处理小于指定大小的文件
sm<大小> 处理大于指定大小的文件
t 归档后测试文件
ta<日期> 处理在 YYYYMMDDHHMMSS 格式中 <指定日期> 后修改的文件
tb<日期> 处理在 YYYYMMDDHHMMSS 格式中 <指定日期> 前修改的文件
tk 保持原有的档案文件时间
tl 将档案文件时间设为最新文件的时间
tn<时间> 处理比 <指定时间> 更新的文件
to<时间> 处理比 <指定时间> 旧的文件
ts<m,c,a>[N] 保存或恢复文件时间属性 (修改、创建及访问时间)
u 更新文件
v 创建分卷压缩时自动检测大小或列出所有的分卷
v<大小>[k,b] 创建分卷, 分卷大小 = <大小> * 1000 [*1024, *1]
vd 创建分卷前先清除磁盘内容
ver[n] 文件版本控制
vn 使用旧样式的卷命名方案
vp 在每个分卷压缩前暂停
w<路径> 指定工作目录
x<文件> 排除指定的文件
x@ 从标准输入设备读取要排除的文件名
x@<列表> 排除指定列表文件中的文件
y 所有的询问都回答是
z[文件] 从档案文件读取注释内容
作者: qwertl
时间: 2008-8-18 13:29
是不是直接可以将echo 换成rar a e:\rardata\%%a.rar %%a
作者: yishanju
时间: 2008-8-18 13:32
。。。
去试试就知道了
作者: qwertl
时间: 2008-8-19 11:14
http://upload.cn-dos.net/img/679.jpg
[
Last edited by qwertl on 2008-8-19 at 11:21 AM ]
作者: HAT
时间: 2008-8-19 11:35
看来论坛的上传系统还是不稳定
作者: qwertl
时间: 2008-8-19 12:52
上传的图片没有了??
作者: HAT
时间: 2008-8-19 13:37
7楼的代码无法满足要求?
作者: qwertl
时间: 2008-8-19 14:42
下午测试再看.,不过觉得有这个rar参数应会简单些
作者: qwertl
时间: 2008-8-21 22:50
@echo off
set rar_="c:\program files\winrar\rar.exe"
set Today=%date:~0,4%%date:~5,2%%date:~8,2%
echo %Today%
for /f "tokens=*" %%a in ('dir /b / "F:\backup\sql\*%Today%*.bak"') do (
%rar_% a "F:\backup\sql\%%~na.rar" "F:\backup\sql\%%a"
)
执行提示出错:
C:\>autorar
20080826
RAR 3.71 版权 (C) 1993-2007 Alexander Roshal 20 九月 2007
共享版本 输入 RAR -? 获得帮助
评估版本,请注册
不能打开 wzyw_db_200808261831.BAK
系统找不到指定的文件。
正在创建 压缩文件 F:\rardata\sql\wzyw_db_200808261831.rar
警告:无文件
[
Last edited by qwertl on 2008-8-26 at 05:16 PM ]
作者: qwertl
时间: 2008-8-26 17:17
@echo off
set rar_="c:\program files\winrar\rar.exe"
set Today=%date:~0,4%%date:~5,2%%date:~8,2%
echo %Today%
for /f "tokens=*" %%a in ('dir /b / "F:\backup\sql\*%Today%*.bak"') do (
%rar_% a "F:\backup\sql\%%~na.rar" "F:\backup\sql\%%a"
)
执行提示出错:
C:\>autorar
20080826
RAR 3.71 版权 (C) 1993-2007 Alexander Roshal 20 九月 2007
共享版本 输入 RAR -? 获得帮助
评估版本,请注册
不能打开 wzyw_db_200808261831.BAK
系统找不到指定的文件。
正在创建 压缩文件 F:\rardata\sql\wzyw_db_200808261831.rar
警告:无文件
作者: HAT
时间: 2008-8-26 17:25
'dir /b
/ "F:\backup\sql\*%Today%*.bak"'
那个蓝色的斜线有什么作用?
作者: qwertl
时间: 2008-8-26 17:45
麻虎了 晕
作者: metoo
时间: 2008-8-26 19:24
Quote: |
- @echo off
- if not exist "%systemroot%\system32\rar.exe" copy rar.exe "%systemroot%\system32\"
- for /f "skip=5 tokens=4" %%a in ('dir e:^|find /v "字节"') do (
- rar a "f:\backup\%%a.rar" "e:\%%a"
- )
- echo 备份完成
- ping -n 2 127.1 >nul 2>nul
metoo发表于: 2008-08-26 19:11 |
|
老早写的自己用的。实际上rar支持通配符,简单多了,我是因为这个使用正常懒得去改,自己改改吧
[
Last edited by metoo on 2008-8-26 at 07:28 PM ]