startup.bat具体含义

//删除冗余的注释语句(即rem 开头的语句),其中rem表示注释,echo表示输出,startup文件内容如下:

@echo off

 

if "%OS%" == "Windows_NT" setlocal //判断当前系统是否是window系统

rem Guess CATALINA_HOME if not defined

set "CURRENT_DIR=%cd%" //设置当前目录

if not "%CATALINA_HOME%" == "" goto gotHome //如果设置了CATALINA_HOME环境变量 ,就跳转到gotHome处执行

 

set "CATALINA_HOME=%CURRENT_DIR%"  //如果没有设置CATALINA_HOME,就设置CATALINA_HOME的值为当前目录

if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //判断catalina.bat是否存在,存在就跳转到okHome处执行

cd .. //返回catalina.bat所在上级目录即tomcat的bin目录,对应上一个判断,catalina.bat不存在时执行此处

set "CATALINA_HOME=%cd%" //设置CATALINA_HOME为tomcat的安装目录

cd "%CURRENT_DIR%"  //进入当前目录

:gotHome

if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //判断catalina.bat是否存在,存在就跳转到okHome处执行

echo The CATALINA_HOME environment variable is not defined correctly  //对于上面的判断,不存在时提示错误信息

echo This environment variable is needed to run this program

goto end  //跳转到end出执行,因为end后面没有代码,所以程序就退出,也就是我们看到一闪而过的原因所在了。

:okHome

 

set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" //设置EXECUTABLE 为 catalina.bat

 

rem Check that target executable exists

if exist "%EXECUTABLE%" goto okExec // 判断EXECUTABLE(这里指catalina.bat文件)是否存在,存在就跳转到okExec处执行

echo Cannot find "%EXECUTABLE%" //对于上面的判断,不存在时 提示错误信息EXECUTABLE(这里指catalina.bat文件)找不到

echo This file is needed to run this program //EXECUTABLE(这里指catalina.bat文件) 是程序运行必要条件

goto end //跳转到end出执行

:okExec

 

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

set CMD_LINE_ARGS= //设置参数

:setArgs

if ""%1""=="""" goto doneSetArgs  //关于%1 与shift 命令,建议大家详细百度一下吧,这里不做解释了,只要知道%1表示参数就可以了

set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 //设置参数

shift

goto setArgs

:doneSetArgs

 

call "%EXECUTABLE%" start %CMD_LINE_ARGS% //call是调用的意思,就是调用EXECUTABLE(这里指catalina.bat文件) start 参数

 

:end // 程序结束

/*

 * 看到这里,相信大家已经知道这个文件是干什么用的了:就是找到 catalina.bat文件并且运行 catalina.bat。

 */

猜你喜欢

转载自blog.csdn.net/qq_27570029/article/details/80277822
今日推荐