用批处理写的:数据库备份还原工具
2010-07-20 08:48
323 查看
由于平时要进行数据库的备份和还原操作,为了提高效率和节省时间就有了下面的批处理程序,这是针对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
今天(2010.07.20)从今天开始我要把我在javaeye发表的文章都转过来,受不了javaeye了本文出自 “博客即日起停止更新” 博客,谢绝转载!
@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
今天(2010.07.20)从今天开始我要把我在javaeye发表的文章都转过来,受不了javaeye了本文出自 “博客即日起停止更新” 博客,谢绝转载!
相关文章推荐
- 批处理写的 oracle 数据库备份还原工具
- 用批处理写的:数据库备份还原工具(第三版)
- 用批处理写的:数据库备份还原工具
- 用批处理写的:数据库备份还原工具(修正加强版)
- 使用MySQL Administrator (GUI 工具) 备份/还原 数据库
- 通过批处理备份/还原数据库
- 数据库备份还原工具EMS SQL Angel for SQL Server发布1.3版本
- [MySQL] 一个简单的批处理,教你自制MySQL备份和还原工具.
- 启明星数据库批量备份与还原工具
- 一个功能强大的数据库备份、还原工具
- 利用批处理自动执行sql脚本、备份、还原数据库
- xtrabackup2.4 备份Precona5.6数据库,做增量备份与还原
- 数据库的备份和还原
- ORACLE 自动备份并还原数据库
- 还原 SQL Server 备份数据库文件
- golang 数据库批量更新工具备份
- DbUnit数据库测试之备份与还原
- mysql基础----数据库备份与还原(十三)
- [整理] C#调用SQLDMO.DLL时间数据库备份 / 还原。
- 数据库备份与还原