欲将另一机器上共享目录内的文件定时复制到本机上,代码如下:- REM **********************************************************
- REM * 复***务器下Oracle数据库备份文件到客户端批处理脚本 *
- REM * *
- REM * *
- REM **********************************************************
-
- @echo off
- REM 取当前系统时间,可能因操作系统不同而取值不一样
- set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%
- set CURTIME=%time:~0,2%
- REM 小时数如果小于10,则在前面补0
- if "%CURTIME%"==" 0" set CURTIME=00
- if "%CURTIME%"==" 1" set CURTIME=01
- if "%CURTIME%"==" 2" set CURTIME=02
- if "%CURTIME%"==" 3" set CURTIME=03
- if "%CURTIME%"==" 4" set CURTIME=04
- if "%CURTIME%"==" 5" set CURTIME=05
- if "%CURTIME%"==" 6" set CURTIME=06
- if "%CURTIME%"==" 7" set CURTIME=07
- if "%CURTIME%"==" 8" set CURTIME=08
- if "%CURTIME%"==" 9" set CURTIME=09
- set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%
-
- REM 设置备份目录
- set BACKUP_DIR=E:\ORA_BACKUP
-
- REM 创建备份目录
- if not exist %BACKUP_DIR% md %BACKUP_DIR%
-
- REM 设备份目录为当前目录
- pushd %BACKUP_DIR%
- set CURDIR=%BACKUP_DIR%
-
- REM 删除超过30天的备份
- for /f "skip=30" %%i in ('dir/b/o-d *.DMP') do del %%i&&echo.%date:~0,10% %time:~0,8% 从%BACKUP_DIR%删除%%i>>%CURDIR%\LOG.TXT
- for /f "skip=30" %%i in ('dir/b/o-d *.LOG') do del %%i&&echo.%date:~0,10% %time:~0,8% 从%BACKUP_DIR%删除%%i>>%CURDIR%\LOG.TXT&&echo.------------------------------------------------------------------>>%CURDIR%\LOG.TXT
-
- REM 映射服务器备份目录为本地S盘
- net use S: \\192.168.1.99\ORA_BACKUP server /user:administrator
- pushd s:\
-
- REM 复制最后一次备份文件到当前目录
- for /f %%i in ('dir/od/b *.DMP') do set dmpfile=%%i
- for /f %%i in ('dir/od/b *.LOG') do set logfile=%%i
- Xcopy /-y %dmpfile% %BACKUP_DIR%&&echo.%date:~0,10% %time:~0,8% 复制%dmpfile%到%BACKUP_DIR%>>%CURDIR%\LOG.TXT
- Xcopy /-y %logfile% %BACKUP_DIR%&&echo.%date:~0,10% %time:~0,8% 复制%logfile%到%BACKUP_DIR%>>%CURDIR%\LOG.TXT&&echo.------------------------------------------------------------------>>%CURDIR%\LOG.TXT
-
- REM 断开映射
- net use S: /del
复制代码 执行后出现如下提示,不能自动断开连接,请教:如何解决? |