用批处理定时备份文件
答案:2 悬赏:40
解决时间 2021-02-11 22:09
- 提问者网友:房东的猫
- 2021-02-11 16:40
用批处理定时备份文件
最佳答案
- 二级知识专家网友:茫然不知崩溃
- 2021-02-11 16:57
可以的啊,那个保存到哪儿呢?
@echo off
set /p currentpath=请输入文件路径(格式为driver:\path):
set /p filename=请输待保存的文件名(格式:文件名,不包括扩展名):
set /p exname=请输入待保存文件扩展名(.扩展名):
set /p storepath=请输入文件保存路径(格式:driver:\path):
set /p interval=请输入保存间隔(单位为分且小于60):
date/t>tmp.txt
for /f "tokens=1,2,3 delims=/ " %%k in (tmp.txt) do set date=%%k%%l%%m
cd /d %currentpath%
echo 任务已创建,任务运行期间请别关闭本窗口,若要结束任务,请在本窗口为活动的状态下按ctrl+c键。
:loop1
time/t>tmp.txt
for /f "tokens=1,2 delims=: " %%i in (tmp.txt) do (set currenthour=%%i&&set currentminite=%%j)
set /a leftminite=60-%interval%
if /i %currentminite% gtr %leftminite% (set /a nexthour=%currenthour%+1&&set /a nextminite=%currentminite%-%leftminite%) else (set /a nexthour=%currenthour%&&set /a nextminite=%currentminite%+%interval%)
:loop
time/t>tmp.txt
for /f %%a in (tmp.txt) do (if "%%a"=="%nexthour%:%nextminite%" (copy %filename%%exname% %date%_%nexthour%%nextminite%%exname%&&move %date%_%nexthour%%nextminite%%exname% %storepath%&&goto loop1)else (goto loop))
pause
请楼主把以上内容保存为bat文件,双击运行即可,我自己测试过,可以正常运行。
不好意思哈,少打了个“t”,已经改回来了。
@echo off
set /p currentpath=请输入文件路径(格式为driver:\path):
set /p filename=请输待保存的文件名(格式:文件名,不包括扩展名):
set /p exname=请输入待保存文件扩展名(.扩展名):
set /p storepath=请输入文件保存路径(格式:driver:\path):
set /p interval=请输入保存间隔(单位为分且小于60):
date/t>tmp.txt
for /f "tokens=1,2,3 delims=/ " %%k in (tmp.txt) do set date=%%k%%l%%m
cd /d %currentpath%
echo 任务已创建,任务运行期间请别关闭本窗口,若要结束任务,请在本窗口为活动的状态下按ctrl+c键。
:loop1
time/t>tmp.txt
for /f "tokens=1,2 delims=: " %%i in (tmp.txt) do (set currenthour=%%i&&set currentminite=%%j)
set /a leftminite=60-%interval%
if /i %currentminite% gtr %leftminite% (set /a nexthour=%currenthour%+1&&set /a nextminite=%currentminite%-%leftminite%) else (set /a nexthour=%currenthour%&&set /a nextminite=%currentminite%+%interval%)
:loop
time/t>tmp.txt
for /f %%a in (tmp.txt) do (if "%%a"=="%nexthour%:%nextminite%" (copy %filename%%exname% %date%_%nexthour%%nextminite%%exname%&&move %date%_%nexthour%%nextminite%%exname% %storepath%&&goto loop1)else (goto loop))
pause
请楼主把以上内容保存为bat文件,双击运行即可,我自己测试过,可以正常运行。
不好意思哈,少打了个“t”,已经改回来了。
全部回答
- 1楼网友:飘零作归宿
- 2021-02-11 17:05
@echo off
rem call logicbackup.bat %dump_dir%
rem ==========================================================================================
rem 本批处理实现支持expdp数据泵的oracle数据库版本的数据库逻辑备份,流程为:导出数据到
rem dump_dir 数据库目录下,然后把dmp文件以rar格式放入当天备份日期命名的目录下,便于以后按
rem 照日期恢复。
rem
rem 需要配置的参数说明:
rem bat_home:即本批处理所在的目录;
rem bkdir:是调用本批处理时传进来的参数 dump_dir,即要备份到的数据文件目录。
rem
rem author: sanlavo
rem time: 2007-06-07
rem ==========================================================================================
rem
echo 备份开始...
echo 当前的时间是: %date% %time%
set bat_home=e:\test
set bkdir=%1
set bkfile=%date:~0,4%%date:~5,2%%date:~8,2%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
expdp system/sys parfile=%bat_home%\scriptslib\parfiletest.sql
if not exist %bkdir%\%bkfile%_logic (
md %bkdir%\%bkfile%_logic
) else (
echo 目录 %bkdir%\%bkfile%_logic 已经存在
)
echo 开始压缩文件...
rar a %bkdir%\%bkfile%_logic\%bkfile%%hhmmss%_logic_full.rar %bkdir%\*.dmp
echo 压缩文件 %bkfile%%hhmmss%_logic_full.rar 完成
echo 开始移动文件...
move %bkdir%\*.dmp %bkdir%\%bkfile%_logic\
move %bkdir%\*.log %bkdir%\%bkfile%_logic\
echo 移动文件完成
echo 开始删除dmp文件...
del /f /s /q %bkdir%\%bkfile%_logic\*.dmp
echo 删除dmp文件完成
net send %userdomain% "数据库逻辑备份已于:%date% %time% 完成!"
echo .
echo 备份已于:%date% %time% 完成!
echo .
rem 移动批处理的日志文件到备份目录下面
xcopy %bat_home%\logicbackup_%bkfile%*.log %bkdir%\%bkfile%_logic\
echo successfully completed! 网上搜的 仅供参考
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯