• 解读Tomcat7.0的startup.bat批处理命令


    原文地址:http://blog.csdn.net/xiaolang8762400/article/details/5572998

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

    @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

  • 相关阅读:
    2
    3
    尚学堂--网络编程
    尚学堂--线程
    尚学堂--IO
    尚学堂--容器
    谈谈两个来月在小公司的经历
    Dockerfile详解
    docker 升级后或者重装后,启动容器提示:Error response from daemon: Unknown runtime specified docker-runc
    centos7系统优化
  • 原文地址:https://www.cnblogs.com/SpringSmallGrass/p/3013145.html
Copyright © 2020-2023  润新知