zoukankan      html  css  js  c++  java
  • bat(批处理)命令(tomcat 7.0.75 startup.bat 命令集)

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

    startup.bat中涉及到的bat命令如下:

      一. echo

    echo 命令:显示消息,或者启用或关闭命令回显

    echo 命令格式:

      1.echo [on|off]

      2.echo [message]

    测试代码如下:

    1 d:
    2 cls
    3 echo on
    4 echo This is test
    5 echo off
    6 echo This is test
    7 pause

      效果如下:

      

      小结:

      经测试发现echo 主要有2大功能:

    1. 显示消息
    2. 打开或关闭命令回显

    * 命令回显:如上图,当脚本运行至第一个echo This is test 时,已经运行了echo on,所以此时命令回显是打开的,故而在cmd中显示该命令(echo This is test)。继续运行脚本至第二个This is test时,运行了echo off,命令回显关闭,所以在cmd只会显示命令(echo This is test)的结果(在cmd显示This is test),而不会显示该命令。

    二. @

    @命令:运行时不回显命令

    测试代码如下:

    1 d:
    2 cls
    3 echo This is test
    4 @echo This is test
    5 pause
    6 @pause

      效果如下:

      

      小结:

      经测试发现,当命令(@echo This is test)运行时,不回显命令(即不在cmd中显示命令'echo This is test',可对照命令'echo This is test')。其效果如echo off 一样,2者区别在于执行echo off后,其后的代码均不会回显命令,除非有像echo on这样打开命令回显的命令执行。而执行@+某条命令只会使该命令不回显,而不影响其他命令是否回显。同样在执行pause和@pause时,带@的pause没有回显命令,不带@的pause回显命令。

      *pause的作用是当脚本执行至此命令时,不执行之后的命令并暂停,仅当按任意键后继续运行。

      三. rem

      rem 命令:在批处理文件里增加注释或说明

      rem 命令格式:rem [comment]

      测试代码如下:

    1 d:
    2 cls
    3 rem echo this is rem
    4 echo this is rem
    5 pause

      效果如下:

      

      小结:

      经测试发现,rem 命令没有产生任何可见的结果,据官方解释rem命令功能为“在批处理文件或***里加上注释或说明。”。

      四.set

      set 命令:显示、设置或删除 cmd.exe 环境变量

      set 命令格式:set [variable=[string]]

      测试代码如下:

    1 d:
    2 cls
    3 set var=1
    4 set var1=2
    5 echo %var%,%var1%
    6 pause

      效果如下:

      

      小结:

      经测试发现,set 命令可以设置环境变量并赋值,用echo 命令可以显示变量值。

      *1.echo 命令显示变量值的格式为 echo %变量名称%,例如显示名称为var变量的值,使用echo %var%。

      *2.若变量赋值时内容有空格,使用set "变量赋值表达式"的方法完整赋值内容。

      五.setlocal

      setlocal 命令:开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。

      个人理解setlocal和endlocal命令为变量的局部化,在setlocal至endlocal命令之间为此区域变量的作用范围。对变量做任何操作皆不会影响其他区域的变量。

      测试代码如下:

     1 d:
     2 cls
     3 set var=1
     4 echo %var%
     5 setlocal
     6 set var=2
     7 echo %var%
     8 endlocal
     9 echo %var%
    10 pause

      效果如下:

      

      小结:

      经测试发现,在setlocal和endlocal之间的区域对变量的值做修改并不会影响其他区域相同变量的值

      六.if

      if 命令:执行批处理程序中的条件处理

      if 命令格式:

        1. if [not] string1==string2 command

        2.if [not] exist filename command

      测试代码如下:

     1 d:
     2 cls
     3 if 1==1 echo equ
     4 if not exist D:qwertyuiop echo not exist
     5 set "var=1"
     6 set "var1=2"
     7 set "var3=D:qwertyuiop"
     8 if not %var%==%var1% echo not equ
     9 if not exist %var3% echo not exist dir
    10 pause

      效果如下:

      

      小结:

      经测试发现,if 命令可判断2个字符串或变量的值是否相等并且判断文件或目录是否存在

      七.goto

      goto 命令:将 cmd.exe 定向到批处理程序中带标签的行。

      goto 命令格式:goto lable

      测试代码如下:

     1 d:
     2 cls
     3 :start
     4 echo start
     5 goto lab
     6 :end
     7 echo end
     8 pause
     9 :lab
    10 echo lab
    11 goto end

      效果如下:

      

       小结:

      经测试发现,执行goto 命令后转至相应的指令行去执行。

      八.cd

      cd 命令:显示当前目录名或改变当前目录。

      cd 命令格式:

        1.cd [/d] [drive:][path]

        2.cd [..]

      测试代码如下:

    1 d:
    2 cls
    3 cd d:
    4 cd..
    5 pause

      效果如下:

      

      小结:

      经测试发现,cd [drive:][path] 格式的cd命令进入指定目录,cd [..] 格式的命令返回上一层目录。

      九.call

      call 命令:从批处理程序调用另一个批处理程序。

      call 命令格式:call [drive:][path]filename [batch-parameters]

      测试代码如下:

    1 rem main file
    2 d:
    3 cls
    4 call d:	est.bat
    5 pause
    6 rem 需要自己在d盘创建test.bat,并写入如下信息。
    7 rem test.bat
    8 echo this is test.bat
    9 pause

      效果如下:

      

      小结:

      经测试发现,call  命令可调用其他bat文件并执行。

      十.shift

      shift 命令:更改批处理文件中可替换参数的位置。

      shift 命令格式:shift [/n]

      测试代码如下:

     1 d:
     2 cls
     3 call :f 1 2 3
     4 goto end
     5 :f
     6 echo %1,%2,%3
     7 shift
     8 echo %1,%2,%3
     9 goto:eof
    10 :end
    11 pause

      效果如下:

      

      小结:

      经测试发现,shift命令将第2和第3个参数同时向左移位1。

      *以上命令介绍并不全面,只是简单介绍startup.bat文件中所用到的功能。

      版权声明:本文原创发表于 博客园,作者为 微小处存bug 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

      感谢您的阅读,若您觉得本文对您有所帮助,请点击右下角的推荐按钮。

      若您想支持作者,详见下方二维码:

         

  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/open-technology/p/7885878.html
Copyright © 2011-2022 走看看