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

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

  一. echo

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

echo 命令格式:

  1.echo [on|off]

  2.echo [message]

测试代码如下:

 d:
cls
echo on
echo This is test
echo off
echo This is test
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),而不会显示该命令。

二. @

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

测试代码如下:

 d:
cls
echo This is test
@echo This is test
pause
@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]

  测试代码如下:

 d:
cls
rem echo this is rem
echo this is rem
pause

  效果如下:

  

  小结:

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

  四.set

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

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

  测试代码如下:

 d:
cls
set var=1
set var1=2
echo %var%,%var1%
pause

  效果如下:

  

  小结:

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

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

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

  五.setlocal

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

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

  测试代码如下:

 d:
cls
set var=1
echo %var%
setlocal
set var=2
echo %var%
endlocal
echo %var%
pause

  效果如下:

  

  小结:

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

  六.if

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

  if 命令格式:

    1. if [not] string1==string2 command

    2.if [not] exist filename command

  测试代码如下:

 d:
cls
if 1==1 echo equ
if not exist D:\qwertyuiop echo not exist
set "var=1"
set "var1=2"
set "var3=D:\qwertyuiop"
if not %var%==%var1% echo not equ
if not exist %var3% echo not exist dir
pause

  效果如下:

  

  小结:

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

  七.goto

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

  goto 命令格式:goto lable

  测试代码如下:

 d:
cls
:start
echo start
goto lab
:end
echo end
pause
:lab
echo lab
goto end

  效果如下:

  

  小结:

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

  八.cd

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

  cd 命令格式:

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

    2.cd [..]

  测试代码如下:

 d:
cls
cd d:\0
cd..
pause

  效果如下:

  

  小结:

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

  九.call

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

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

  测试代码如下:

 rem main file
d:
cls
call d:\test.bat
pause
rem 需要自己在d盘创建test.bat,并写入如下信息。
rem test.bat
echo this is test.bat
pause

  效果如下:

  

  小结:

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

  十.shift

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

  shift 命令格式:shift [/n]

  测试代码如下:

 d:
cls
call :f 1 2 3
goto end
:f
echo %1,%2,%3
shift
echo %1,%2,%3
goto:eof
:end
pause

  效果如下:

  

  小结:

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

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

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

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

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

     

bat(批处理)命令(tomcat 7.0.75 startup.bat 命令集)的更多相关文章

  1. Tomcat 8 中的startup.bat

    1. bat文件 批处理文件,在DOS和Windows(任意版本)的系统中,bat文件是可执行文件 2. startup.bat 中涉及的bat语法 2.1 @. echo. echo off @ec ...

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

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

  3. DOS窗口启动tomact,运用startup.bat/shutdown.bat命令启动/关闭tomcat

    设置CATALINA_HOME环境变量1.CATALINA_HOME是TOMCAT安装路径的别名,目的是为了方便使用TOMCAT2.计算机>属性>环境变量, 新建环境变量.变量名为CATA ...

  4. Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案

    即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的w ...

  5. tomcat 8 startup.bat启动乱码问题

    修改Tomcat bin目录下startup.bat文件 将call "%EXECUTABLE%" start %CMD_LINE_ARGS%  改为 call "%EX ...

  6. bat批处理教程

    批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合 1.ping sz.tencent.com > a.txt 把前面信息放到a.txt中 ping sz.tencent.com > ...

  7. startup.bat闪退问题

    startup.bat闪退问题 我自己遇到的 1.例如: 手动点击startup.bat 后 ,一闪而过 2例如:在cmd下 进到tomcat的bin目录 运行 startup.bat 解决问题,第一 ...

  8. windows系统bat方式启动tomcat出现java.lang.OutOfmemoryError:PermGen Space 错误

    1.问题情景: 在部署项目时,将两个应用部署到同一个tomcat下,通过startup.bat启动服务时,控制台出现出现java.lang.OutOfmemoryError:PermGen Space ...

  9. Tomcat无法正常启动start.bat 一闪而过、只显示USING 故障排除

    在云主机上配置tomcat的时候遇到的问题. 1. 开始的时候我将自己用的tomcat6绿色版打包放到了主机上,当我打开bin下面的时候startup.bat时,控制台一闪而过,查看log文件没有任何 ...

随机推荐

  1. npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6

    cnpm安装的时候出现的一个问题. 使用npm install cnpm -g --registry=https://registry.npm.taobao.org命令的时候就会出现下图中的WARN. ...

  2. 【转】linux防火墙配置

    开启80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent 出现success表明添加成功 命令含义: --zone #作用域 -- ...

  3. HUSTOJ:5500 && 洛谷:P1412:经营与开发

    题目描述 4X概念体系,是指在PC战略游戏中一种相当普及和成熟的系统概念,得名自4个同样以“EX”为开头的英语单词.eXplore(探索)eXpand(拓张与发展)eXploit(经营与开发)eXte ...

  4. 爬虫入门(三)——动态网页爬取:爬取pexel上的图片

    Pexel上有大量精美的图片,没事总想看看有什么好看的自己保存到电脑里可能会很有用 但是一个一个保存当然太麻烦了 所以不如我们写个爬虫吧(๑•̀ㅂ•́)و✧ 一开始学习爬虫的时候希望爬取pexel上的 ...

  5. 老代码多=过度耦合=if else?阿里巴巴工程师这样捋直老代码

    简介 在业务开发的过程中,往往存在平台代码和业务代码耦合严重难以分离.业务和业务之间代码交织缺少拆解的现象.平台和业务代码交织导致不易修改,不同业务的代码交织增加了不同负责团队之间的协同成本.因此不论 ...

  6. 【.NET Core项目实战-统一认证平台】第十六章 网关篇-Ocelot集成RPC服务

    [.NET Core项目实战-统一认证平台]开篇及目录索引 一.什么是RPC RPC是"远程调用(Remote Procedure Call)"的一个名称的缩写,并不是任何规范化的 ...

  7. Java开发笔记(四十三)更好用的本地日期时间

    话说Java一连设计了两套时间工具,分别是日期类型Date,以及日历类型Calendar,按理说用在编码开发中绰绰有余了.然而随着Java的日益广泛使用,人们还是发现了它们的种种弊端.且不说先天不良的 ...

  8. [leetcode](4.21)2. 按字典序排列最小的等效字符串

    给出长度相同的两个字符串:A 和 B,其中 A[i] 和 B[i] 是一组等价字符.举个例子,如果 A = "abc" 且 B = "cde",那么就有 'a' ...

  9. BaseServlet的编写

    在BaseServlet之前,需要提及工厂factory去管理dao以及service,以及页面转发或重定向的管理 1.创建一个工厂类,以及一个资源文件,资源文件中以键值对的形式去存储key,以及对应 ...

  10. [转载] spring aop 环绕通知around和其他通知的区别

    前言: spring 的环绕通知和前置通知,后置通知有着很大的区别,主要有两个重要的区别: 1) 目标方法的调用由环绕通知决定,即你可以决定是否调用目标方法,而前置和后置通知   是不能决定的,他们只 ...