日期:2014-05-16 浏览次数:20538 次
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] %TEST