博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用批处理写的:数据库备份还原工具
阅读量:6078 次
发布时间:2019-06-20

本文共 1936 字,大约阅读时间需要 6 分钟。

由于平时要进行数据库的备份和还原操作,为了提高效率和节省时间就有了下面的批处理程序,这是针对oracle编写的,可以用在不同的电脑上,因为它会自动读取当前电脑的环境变量,从而取得oracle的安装路径,唯一有一点不足的地方是程序中运行过程中会产生一个中间文本文件,不过这并不碍大事,备份或者还原完了以后将会自动删除产生文本文件,代码如下:
@echo off&setlocal enabledelayedexpansion 

color 0a 

:start 

for /f "tokens=2 delims==" %%a in ('path') do ( 

        set "str=%%a" 

        set str=!str: =+! 

        for %%i in (!str!) do ( 

                set "var=%%i" 

                set var=!var:+= ! 

                echo !var!>>change.txt 

  for /f "delims=" %%i in ('findstr "Db_1\bin" change.txt') do set var=%%i 

        ) 

         



set /p choice=1.备份 2.还原 3.按任意键退出: 

if %choice%==1 goto exp 

if %choice%==2 goto imp 

:exp 

del /q change.txt 

set /p file=请输入备件数据库的文件名: 

set /p path=请输入存放的路径(记得输冒号:): 

"%var%"\exp.exe smhr/smhr@orcl file=%path%\%file% full=n 

set /p choice=1.继续 2.按任意键退出: 

if %choice%==1 goto start 

:imp 

del /q change.txt 

set /p file=请将要导入的数据库文件拖入窗体内: 

"%var%"\imp.exe smhr/smhr@orcl file=%file% full=y 

set /p choice=1.继续 2.按任意键退出: 

if %choice%==1 goto start
要注意代码中的@orcl 如果你的电脑上只有一个数据库,那么这个写不写是不碍事的,但是如果有两个数据那么这个是必须得写的,否则会出现用户名密码失败。
 
今天(2010.07.15)又再次看了看,以前写过的这个批处理,发现了一些问题,以前考虑的是环境变量中的第一条路径是oracle的,可是在我现在工作的电脑上的环境变量是这样的
e:\Oracle\product\10.1.0\Client_1\bin;e:\Oracle\product\10.1.0\Client_1\jre\1.4.2\bin\client;e:\Oracle\product\10.1.0\Client_1\jre\1.4.2\bin;e:\oracle\product\10.1.0\Db_1\bin;e:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin\client;e:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin;E:\Python26;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;E:\Program Files\Subversion\bin;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs
看到了吧前面的并不是我们想要的,我写的这个批处理真正需要的是以下这行路径
e:\oracle\product\10.1.0\Db_1\bin
所以需要将原代码中的
for /f "delims=" %%i in ('findstr "oracle" change.txt') do set var=%%i
改为
for /f "delims=" %%i in ('findstr "Db_1\bin" change.txt') do set var=%%i
这样以来,就能适应任何环境的主机了,因为我们查询的是Db_1\bin
 
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/353376,如需转载请自行联系原作者
你可能感兴趣的文章
HackTheGame 攻略 - 第四关
查看>>
js删除数组元素
查看>>
带空格文件名的处理(find xargs grep ..etc)
查看>>
华为Access、Hybrid和Trunk的区别和设置
查看>>
centos使用docker下安装mysql并配置、nginx
查看>>
关于HTML5的理解
查看>>
需要学的东西
查看>>
Internet Message Access Protocol --- IMAP协议
查看>>
Linux 获取文件夹下的所有文件
查看>>
对 Sea.js 进行配置(一) seajs.config
查看>>
第六周
查看>>
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>
网络安全管理技术作业-SNMP实验报告
查看>>
根据Uri获取文件的绝对路径
查看>>
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>