Windows批处理脚步实例-创建Oracle数据库用户并向该用户添加数据

Windows批处理使用方便、灵活,功能强大,自动化程度高,特别是在项目测试阶段,利用批处理脚步可以方便搭建测试环境或启动单元测试等,本文分三部分:简单介绍批处理用法、一个简单例子(拷贝、删除文件)、一个较复杂例子(向Oracle数据库创建用户, 给创建的用户分配权限, 给创建的用户创建新表并添加数据)。

1 简单用法:

echo打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置,相当于java中System输出函数
echo.输出一空白行,用来调整脚步输出显示
title给脚步定义一个名字,相当于java Swing中控件中setTitle()函数
setlocal/endlocal定义变量左右范围,setlocal与endlocal之间定义的变量只在setlocal与endlocal起作用,一般setlocal位于脚步开头,endlocal位于脚步结尾
set用来用来定义变量
rd用来删除文件夹,可以加参数/s 安静模式,/q强制删除。例如:rd /s /q C:\test 表示在安静模式下强制删除C盘test目录及其子目录及子目录中文件
del用来删除文件,同样可以加参数/s 安静模式,/q强制删除
copy复制文件
mkdir创建文件夹
rem注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改
pause

运行 Pause 命令时,将显示下面的消息:

Press any key to continue . . .

if(..) goto根据条件,当条件满座指定跳转到标签,找到标签后,程序将处理从下一行开始的命令
if not(..) goto同上
@表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
%变量引用,引用自己定义的变量或输入变量

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 一简单脚步例子simple.cmd

本例子完成功能:删除D:\dev-tools\jboss-eap-4.3\jboss-as\server\production\deploy\ear-war\app.war文件夹下WEB-INF目录及目录下文件,后重新创建WEB-INF目录,并把D:\dev-test\cmd目录下web.xml拷贝到新创建的WEB-INF目录中,如下:

@echo off
echo -------------------------------------------------------------------------
echo simple test
echo -------------------------------------------------------------------------
title=simple test
echo.
setlocal

rem # define two param
set RES_PATH=D:\dev-test\cmd
set DES_PATH=D:\dev-tools\jboss-eap-4.3\jboss-as\server\production\deploy\ear-war\app.war

rem ###############################
rem # deal destination

del /s /q %DES_PATH%\WEB-INF\*
rd /s /q %DES_PATH%\WEB-INF
mkdir %DES_PATH%\WEB-INF

echo.

copy %RES_PATH%\web.xml %DES_PATH%\WEB-INF


endlocal

echo.
pause

运行结果:



 

 3 向Oracle数据库创建用户, 给创建的用户分配权限, 给创建的用户创建新表并添加数据

先给出创建用户和添加数据的sql

createUser.sql:

define TESTUSR=&1
define TESTPASSWD=&2
define TABLESPACE=&3
define TESTUSERCONNECTSTRING=&4

create user &TESTUSR identified by &TESTPASSWD default tablespace &TABLESPACE;

--Grant necessary permissions
grant resource to &TESTUSR;

grant CREATE SESSION to &TESTUSR;
grant ALTER SESSION to &TESTUSR;
grant QUERY REWRITE to &TESTUSR;
grant UNLIMITED TABLESPACE to &TESTUSR;


connect &TESTUSERCONNECTSTRING
@add_data.sql

exit;

 add_data.sql:

create table student(   
name varchar2(20),   
age number(3)   
);   
  
insert into student values('Kobe Bryant',32); 

 导入oracle_import.cmd:

@echo off
echo -------------------------------------------------------------------------
echo TEST TABLE CREATE ORACLE
echo -------------------------------------------------------------------------
echo.
title=TEST TABLE CREATE
setlocal

set usage=createIPCDB.cmd [systemUser] [systemPassword] [SERVICENAME] [testUser] [testPassword] [tableSpaceName] [DBSERVER] [DBPORT]
rem # createIPCDB.cmd system ADMIN orcl newUser ADMIN tableSpace songzhiqi-dt 1521


if "%1"=="" goto Exit
set SYSTEMUSER=%1
echo [SYSTEMUSER] %SYSTEMUSER%

if "%2"=="" goto Exit
set SYSTEMPASSWD=%2

if "%3"=="" goto Exit
set SERVICENAME=%3
echo [SERVICENAME] %SERVICENAME%

if "%4"=="" goto Exit
set TESTUSR=%4
echo [TESTUSR] %TESTUSR%

if "%5"=="" goto Exit
set TESTPASSWD=%5

if "%6"=="" goto Exit
set TABLESPACENAME=%6
echo [TABLESPACENAME] %TABLESPACENAME%

if "%7"=="" goto Exit
set DBSERVER=%7
echo [DBSERVER] %DBSERVER%

if "%8"=="" goto Exit
set DBPORT=%8
echo [DBPORT] %DBPORT%

set SYSTEMCONNECTSTRING=%SYSTEMUSER%/%SYSTEMPASSWD%@//%DBSERVER%:%DBPORT%/%SERVICENAME%
set TESTUSERCONNECTSTRING=%TESTUSR%/%TESTPASSWD%@//%DBSERVER%:%DBPORT%/%SERVICENAME%

echo.
echo %SYSTEMCONNECTSTRING%
echo %TESTUSERCONNECTSTRING%

set RUN_SCRIPT=sqlplus -l -s %SYSTEMCONNECTSTRING% @createUser.sql %TESTUSR% %TESTPASSWD% %TABLESPACENAME% %TESTUSERCONNECTSTRING%


echo.
echo %RUN_SCRIPT%



%RUN_SCRIPT%

goto END

exit

:Exit
echo RUN LIKE:
echo %usage%
endlocal
pause
exit

:END
echo.
endlocal

echo.
pause

 注意:表空间提前创建,运行结果如下:



 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值