因为一个项目上马,需要设置自动备份,网上搜索了一下,windows平台下基本上是通过系统的任务计划完成的,于是我也写了一下,无非就是exp xxxx.dmp,文件名是用的日期加时间,精确到秒,一小时备份一次,由于客户的服务器硬盘够大,也没有像网上的去自动删除之类的。
观察了三天,发现一个奇怪的现象,就是备份到23点后,就不再备份了,一直到10点后才开始备份,百思不得骑姐啊!!!
自己运行也没有问题,但就是那段时间不行(顺便说一下,我是10点才到公司,所以我运行批处理没有问题)
终于有一天,早了一点到公司,看到任务计划里,运行的结果是x01,而不是运行成功,于是搜索之,通过一点点线索终于发现了。
使用%time%的时候,如果是早上10点前,用该变量得到的值最前面是空格,不是想象中的0,我去。。。。
知道问题就好说了,最后代码如下:
set tsp="%time:~0,1%"
if %tsp%==" " (set logname=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%) else set logname=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
exp ous/qwerfdsa@orac file=h:akup\%logname%.dmp log=h:akup\%logname%.log