解读tomcat的startup批处理命令。

来源:互联网 发布:网络销售业务员 编辑:程序博客网 时间:2024/04/30 11:15

红色部分为解读,黑色部分为源码:

 

 

 

@echo off

以上语句作用是在命令提示符窗口隐藏下面的命令本身。

if "%OS%" == "Windows_NT" setlocal

以上语句作用是设置下面的命令的作用范围仅限于这个批处理文件

rem ---------------------------------------------------------------------------

rem Start script for the CATALINA Server

rem

rem $Id: startup.bat 758256 2009-03-25 13:43:00Z mturk $

rem ---------------------------------------------------------------------------

 

rem Guess CATALINA_HOME if not defined

以上语句以rem开头,全部是是注释。

set CURRENT_DIR=%cd%

以上语句的含义:%cd%代表批处理文件所在目录。这里定义了一个变量CURRENT_DIR等于批处理文件所在目录。

if not "%CATALINA_HOME%" == "" goto gotHome

以上语句含义是:如果没有定义CATALINA_HOME的环境变量,就跳转到gotHome处继续执行,负责执行下一条语句。

set CATALINA_HOME=%CURRENT_DIR%

含义是设置CATALINA_HOME为上面定义的当前目录CURRENT_DIR

if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome

含义是:如果存在CATALINA_HOME环境变量设置的目录下的bin目录下的catalina.bat文件,就跳转到okHome处继续执行。

cd ..

set CATALINA_HOME=%cd%

上面两条语句的含义是:设置CATALINA_HOME为当前目录的上一级目录。

cd %CURRENT_DIR%

返回批处理文件所在目录。

:gotHome

定义gotHome断点

if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome

echo The CATALINA_HOME environment variable is not defined correctly

echo This environment variable is needed to run this program

goto end

不管是环境变量中设置的CATALINA_HOME目录或者当前批处理文件所在目录,只要存在/bin/catalina.bat,就跳转到okHome。否则报错后跳转到end

:okHome

定义okHome断点

set EXECUTABLE=%CATALINA_HOME%/bin/catalina.bat

rem Check that target executable exists

if exist "%EXECUTABLE%" goto okExec

echo Cannot find %EXECUTABLE%

echo This file is needed to run this program

goto end

以上语句:如果%CATALINA_HOME%/bin/catalina.bat文件不存在,就报错并且跳转到end

:okExec

定义okExec断点

rem Get remaining unshifted command line arguments and save them in the

set CMD_LINE_ARGS=

清空环境变量CMD_LINE_ARGS

:setArgs

if ""%1""=="""" goto doneSetArgs

%1代表通过命令窗口执行这个批处理文件时传递给这个文件的第一个参数,%2%3以此类推。%0代表批处理文件名。这里的意思是判断如果没有参数,跳到doneSetArgs处执行。

set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1

CMD_LINE_ARGS尾部追加当前参数。

Shift

参数+1

goto setArgs

执行循环知道没有参数为止。

:doneSetArgs

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

执行catalina.bat命令并追加参数。

:end