Board logo

标题: 怎样实现从一个目录到另一目录的一一对应压缩 [打印本页]

作者: 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
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
  1. @echo off
  2. if not exist "%systemroot%\system32\rar.exe" copy rar.exe "%systemroot%\system32\"
  3. for /f "skip=5 tokens=4" %%a in ('dir e:^|find /v "字节"') do (
  4. rar a "f:\backup\%%a.rar" "e:\%%a"
  5. )
  6. echo 备份完成
  7. 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 ]