Board logo

标题: [文本处理] 批处理怎样拷贝最新的含日期的数据库并备份到异地电脑? [打印本页]

作者: hejiling    时间: 2011-1-4 10:52     标题: 批处理怎样拷贝最新的含日期的数据库并备份到异地电脑?

各位高手好:
       小弟想做一个批处理备份,用任务计划,网络硬盘映射,定时将oracle备份出来的库,拷贝到异地电脑,oracle每天10:00,15:00,20:00点会备份三次,生成的文件格式是:201101012000.dmp,我想将每天最后20:00点的备份拷贝到异地电脑硬盘上,这样就是需要验证时间和日期累加的问题,小弟不知道怎么写,还向各位高手请教。谢谢!
作者: hanyeguxing    时间: 2011-1-4 11:12

  1. cmd /c copy "本地路径\%date:~0,4%%date:~5,2%%date:~8,2%2000.dmp" "网络路径\%date:~0,4%%date:~5,2%%date:~8,2%2000.dmp"
复制代码
在任务计划中启动
作者: hejiling    时间: 2011-1-4 20:00     标题: 非常感谢,小弟还忘记了删除前5天的备份,因为硬盘不够大

非常感谢,小弟还忘记了删除前5天的备份,因为硬盘不够大,一个库备份出来大概7个G左右。还望请教。
作者: hanyeguxing    时间: 2011-1-4 22:40

拷贝加删除:
  1. @echo off
  2. cd/d "本地路径"
  3. for /f "tokens=1-3 delims=-:/ " %%a in ("%date%") do set Y=%%a&set M=%%b&set D=%%c
  4. set M_=0%M%&set D_=0%D%
  5. set C0=%Y%%M_:~-2%%D_:~-2%2000.dmp
  6. if %M:~0,1%==0 set M=%M:~1%
  7. if %D:~0,1%==0 set D=%D:~1%
  8. set/a D-=5
  9. if %D% leq 0 call:C %D%
  10. set M=0%M%&set D=0%D%
  11. set C5=%Y%%M:~-2%%D:~-2%2000.dmp
  12. for %%a in (*.dmp) do if "%%a" leq "%C5%" del /f/a "%%a"
  13. copy %C0% "网络路径\%C0%"
  14. exit
  15. :C
  16. set/a M-=1,Y-=!M,M+=!M*12,"C=!(M-4)|!(M-6)|!(M-9)|!(M-11)","D+=!(M-2)*(28+(!(Y%%4)&!!(Y%%100))|!(Y%%400))+C*30+(!!(M-2)&!C)*31"
  17. if %D% leq 0 goto:C
复制代码

[ 本帖最后由 hanyeguxing 于 2011-1-4 22:41 编辑 ]
作者: hejiling    时间: 2011-1-5 19:27     标题: 非常感谢,版主!

小弟在此谢了,调试了代码,只能删除本机ORACLE备份出来的5天前20:00的备份数据,像5天前10:00和15:00还在,拷贝到网络机的备份不能删除前5天,不知道在代码哪行添加删除10:00,15:00的备份,生成的文件格式是:201101011000.dmp,201101011500.dmp我想实现本机、网络机双向删除前5天的备份。还望赐教。
作者: hejiling    时间: 2011-3-6 21:09     标题: 在windows2000server运行时显示找不到文件

高手请赐教:
            小弟在windows2000 server DOS版本是5.0的,运行  cmd /c copy "本地路径\%date:~0,4%%date:~5,2%%date:~8,2%2000.dmp"这个批处理时,显示:星期四-01-20.dmp找不到系统指定的文件,无法复制。但我在windows2003和XP里运行是正常,而且DOS版本是5.1以上,请问是不是dOS版本的问题,如果是这个语句怎么写
作者: CrLf    时间: 2011-3-6 21:41

其实规律性如此之强的背景下,要判断哪些是五天之前的,完全不需要用函数计算,sort就行了:
  1. @echo off
  2. set /a t=%time:~0,2%/5+11
  3. for /f "delims=" %%a in ('dir *.tmp^|sort /r^|more +%t%') do del "%%a"
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2