1. bat文件

批处理文件,在DOS和Windows(任意版本)的系统中,bat文件是可执行文件

2. startup.bat 中涉及的bat语法

2.1 @、 echo、 echo off

@echo off  从本条命令开始,关闭回显(一般bat文件第一行都是这个)

echo off    从下一行开始,关闭回显

echo  输出echo后面的字符

2.2 rem

注释(:: 也是注释)

2.3 call 调用另一个批处理文件。

如果不用call,直接调用批处理文件。在执行被调用的批处理文件后,将不会返回当前的文件,也不会执行当前文件的后续命令

2.4 获取系统变量

  1. @echo off
  2. echo %JAVA_HOME%

 执行结果

 

2.5 setlocal和endlocal

setlocal和endlocal是让中间的程序对于系统变量的改变只在程序内作用,不会影响整个系统。

  1. @echo off
  2. echo %JAVA_HOME%
  3.  
  4. setlocal
  5. set JAVA_HOME=LARRY_HOME
  6. echo %JAVA_HOME%
  7. endlocal
  8. echo %JAVA_HOME%

  执行结果

2.6 参数

%1 代表第一个参数, %2 代表第二个参数, 依次类推

  1. @echo off
  2. echo %1

  执行结果

2.7 if的使用

2.7.1  字符串是否相同

if  "%1"=="hello" echo "hello"

2.7.2  文件是否存在

if exist c:\Users\Think\Desktop\tomcat\test.bat echo exist

2.8 goto

  1. @echo off
  2. set num==%1
  3. if %num%==1 goto One
  4. if %num%==2 goto Two
  5. if %num%==3 goto End
  6.  
  7. :One
  8. echo one
  9. goto End
  10.  
  11. :Two
  12. echo two
  13.  
  14. :Three
  15. echo three
  16.  
  17. :End

  效果图

3. startup.bat

  1. @echo off
  2.  
  3. setlocal
  4.  
  5. rem Guess CATALINA_HOME if not defined
  6. set "CURRENT_DIR=%cd%"
  7. if not "%CATALINA_HOME%" == "" goto gotHome
  8. set "CATALINA_HOME=%CURRENT_DIR%"
  9. if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
  10. cd ..
  11. set "CATALINA_HOME=%cd%"
  12. cd "%CURRENT_DIR%"
  13. :gotHome
  14. if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
  15. echo The CATALINA_HOME environment variable is not defined correctly
  16. echo This environment variable is needed to run this program
  17. goto end
  18. :okHome
  19.  
  20. set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
  21.  
  22. rem Check that target executable exists
  23. if exist "%EXECUTABLE%" goto okExec
  24. echo Cannot find "%EXECUTABLE%"
  25. echo This file is needed to run this program
  26. goto end
  27. :okExec
  28.  
  29. rem Get remaining unshifted command line arguments and save them in the
  30. set CMD_LINE_ARGS=
  31. :setArgs
  32. if ""%1""=="""" goto doneSetArgs
  33. set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
  34. shift
  35. goto setArgs
  36. :doneSetArgs
  37.  
  38. call "%EXECUTABLE%" start %CMD_LINE_ARGS%
  39.  
  40. :end

  流程图

从上图可以看出,执行startup.bat相当于执行catalina.bat start

Tomcat 8 中的startup.bat的更多相关文章

  1. 直接双击启动tomcat中的startup.bat闪退原因及解决方法

    免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了t ...

  2. 双击启动tomcat中的startup.bat闪退原因及解决方法

    免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了t ...

  3. bat(批处理)命令(tomcat 7.0.75 startup.bat 命令集)

    本文主要介绍tomcat 7.0.75中startup.bat(位置:tomcat目录\bin)中涉及到的bat命令,为tomcat源码研究做准备. startup.bat中涉及到的bat命令如下: ...

  4. Tomcat绿色版启动"startup.bat"一闪问题的解决方法!

    进入DOS窗口,运行"startup.bat",会出现错误提示,我是win7 64位,提示“JRE_HOME”设置不正确.于是进入环境变量配置,设置“JRE_HOME”项,随后保存 ...

  5. Tomcat中startup.bat启动无效

    error: Linux下启动和关闭tomcat报错,如下图所示: 而在windows下用cmd启动startup.bat也会报如上的错误: Neither the JAVA_HOME nor the ...

  6. [Tomcat 源码分析系列] (一) : Tomcat 启动脚本-startup.bat

    概述 我们通常使用 Tomcat 中的 startup.bat 来启动 Tomcat. 但是这其中干了一些什么事呢? 大家都知道一个 Java 程序需要启动的话, 肯定需要 main 方法, 那么这个 ...

  7. 关于tomcat startup.bat启动后一闪而过的问题(转)

    1.如果双击startup.bat,窗口一闪而过,可以在命令行里面启动startup.bat:  2.如果命令行里面启动startup.bat情况还是这样,就可以在bat命令后面加上pause.这样就 ...

  8. tomcat.apache startup.bat闪退两种解决方法

    tomcat bin文件夹中的startup.bat闪退原因及解决方法两种 方法一:在启动tomcat时闪退,重新检查java的jre运行环境.如果环境变量忘记配置一定会导致了tomcat的闪退. 追 ...

  9. Tomcat启动脚本(1)startup.bat

    @echo off rem Licensed to the Apache Software Foundation (ASF) under one or more rem contributor lic ...

随机推荐

  1. 阿里云ECS安装最新版本Node.js

    原文  http://www.w3ctech.com/topic/1610 主题 Node.js操作系统服务器 我的ECS实例是Ubuntu操作系统,直接使用 apt-get install node ...

  2. web移动端生产环境调试

    如果是开发环境,比较容易: 最笨的方法是手机开QQ电脑开QQ把做好的页面传给手机QQ直接打开.. 参考: http://blog.allenm.me/2014/05/mobile-web-debug- ...

  3. kill qz _e epi,eu,ex,exo out3

    1● epi 在~上,在~周围,在~后面   2● eu 好,优秀     3● ex 出,出去   4● exo 在外面 的,外部的    

  4. ps和fireworks切图网页优化,jpg为80时

  5. 1.2 C++命名空间(namespace)

    参考:http://www.weixueyuan.net/view/6326.html 总结: C++语言引入命名空间(Namespace)这一概念主要是为了避免命名冲突,其关键字为 namespac ...

  6. RNN - LSTM - GRU

    循环神经网络 (Recurrent Neural Network,RNN) 是一类具有短期记忆能力的神经网络,因而常用于序列建模.本篇先总结 RNN 的基本概念,以及其训练中时常遇到梯度爆炸和梯度消失 ...

  7. 爬虫从网页中去取的数据中包含 空格

    爬虫从网页中爬取的数据中带了一个 这样的空格,使用trim()函数和replace(" ", "")去掉不了,找了一下资料发现,空格有两种一种是从键盘输入的对应 ...

  8. php flock 文件锁

    于php中文件锁函数flock函数用法简介,希望通过本文的介绍大家对于Linux方面能够更加的了解 flock (PHP 4, PHP 5) flock — 轻便的咨询文件锁定 说明 bool flo ...

  9. Java实现哈夫曼编码和解码

    最近无意中想到关于api返回值加密的问题,譬如我们的api需要返回一些比较敏感或者重要不想让截获者得到的信息,像如果是做原创图文的,文章明文返回的话则有可能被抓包者窃取. 关于请求时加密的方式比较多, ...

  10. 3.3 shell控制流结构

    shell中的控制流包括if then else语句,case语句,for循环,until循环,while循环,break控制,continue控制. 条件测试: 有时判断字符串是否相等或检查文件状态 ...