[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 批处理如何按日期建立文件夹存储备份数据等?

  近日,上级部门要求我们每日备份Oracle数据库,且至少保留最近7天的备份数据。

  我自己写了段代码,如下:

    D:\oracle\ora92\bin\exp.exe userid=用户名/密码 direct=Y file=E:\Bak\oa.dmp log=E:\Bak\oa.log
    set var=%date:~0,10%
    set var=%var:-=%
    md "E:\DateBak\%var%"
    move e:\bak\*.* "e:\datebak\%var%"


  在XP下加入任务计划,调试成功,自动建立的日期文件夹形如“20080710”。

  将该批处理放到服务器上,系统为2000 Server,结果发现自动建立的日期文件夹形如“星期四 20080”。

  调整参数,将“set var=%date:~0,10%”改为“set var=%date:~0,14%”,运行后,自动建立形如“星期四 20080710”的文件夹。

  至此,问题初步解决。

  现请教:

  1、外地下级部门并不清楚exp.exe文件的路径,我百度了段代码,如下:

    for /f "skip=1 tokens=1*" %i in ('wmic datafile where "filename='exp' and extension='exe'" get caption') do @echo %i

  运行后,给出形如“D:\oracle\ora92\bin\exp.exe”的回显,请问,怎样将此路径自动加到

    exp.exe所在路径 userid=用户名/密码 direct=Y file=E:\Bak\oa.dmp log=E:\Bak\oa.log

  这句代码中?

  2、如何实现7天后自动删除最早一个备份?

[ 本帖最后由 pudilan 于 2008-7-11 09:26 编辑 ]

第一个问题:
  1. @echo off
  2. for /f "skip=1 tokens=1*" %%i in ('wmic datafile where "filename='exp' and extension='exe'" get caption') do "%%i" userid=用户名/密码 direct=Y file=E:\Bak\oa.dmp log=E:\Bak\oa.log
  3. set var=%date:~0,14%
  4. set var=%var:-=%
  5. md "E:\DateBak\%var%"
  6. move e:\bak\*.* "e:\datebak\%var%"
复制代码
第二个问题论坛上以前有相关的资料,你查一下
不大可能的事也许今天实现,根本不可能的事也许明天会实现

TOP

分离路径的代码,剩下的楼主自己改了:
  1. @echo off
  2. for /f "delims=" %%i in ('wmic datafile where "filename='exp' and extension='exe'" get caption^|findstr "exp.exe"') do echo %%~dpi&pause>nul
复制代码
***共同提高***

TOP

非常感谢两位版主的回复!
小弟先调试去咯~~~

TOP

第二个问题,个人建议备份文件最好去掉前面的“星期”

否则会大大加大代码量

TOP

返回列表