Board logo

标题: 请教关于tomcat 中用到的批处理命令 [打印本页]

作者: youlong699     时间: 2009-5-30 11:16    标题: 请教关于tomcat 中用到的批处理命令

在service.bat中用到了参数%cd%,开始不解,后来猜测是当前路径,经过验证基本是这样的。但依然有一事不明。有命令set CATALINA_HOME=%cd%,然后有if exist "CATALINA_HOME\bin\tomcat.exe",这一句翻译过来应该是C:\apache-tomcat-6.0.18\bin\bin\tomcat6.exe(当前路径是C:\apache-tomcat-6.0.18\bin),但是tomcat6.exe的路径是C:\apache-tomcat-6.0.18\bin\tomcat6.exe,为什么还能检测成功呢??
     并且将service.bat拷贝到C:\apache-tomcat-6.0.18\路径下执行也可以,但是在C:\apache-tomcat-6.0.18\bin\bin 下执行就不行了。
    请高手指点
作者: slore     时间: 2009-5-30 13:22
CATALINA_HOME 不等于 %CATALINA_HOME%
作者: youlong699     时间: 2009-5-30 23:05
能详细解释一下吗??谢谢
难道CATALINA_HOME\bin\tomcat.exe,这一句翻译过来不是
C:\apache-tomcat-6.0.18\bin\bin\tomcat6.exe?

为什么service.bat在上一级目录中执行也可以成功,这如何解释呢?
这时候同样是CATALINA_HOME\bin\tomcat.exe 应该对应的是
C:\apache-tomcat-6.0.18\bin\tomcat6.exe吧,为什么两个路径都可以呢?

[ Last edited by youlong699 on 2009-5-31 at 00:05 ]
作者: HAT     时间: 2009-5-31 01:11
人家service.bat是这样写的:
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%cd%
if exist "%CATALINA_HOME%\bin\tomcat6.exe" goto okHome
你抄一遍就把百分号搞没了?
作者: youlong699     时间: 2009-5-31 03:27
四楼说的是,我一直将 %CATALINA_HOME%和 CATALINA_HOME视为一个东西,就把这个忽略啦
丢了关键一句:
cd ..
set CATALINA_HOME=%cd%
这就回到上一级目录啦!
再请教一下:
if not "%CATALINA_HOME%" == ""  
这一句的 %CATALINA_HOME% 是不是引用的  CATALINA_HOME 的值呢?二楼讲这两个不是一回事?
没学过完整的bat语法,推测加验证,请勿见笑!还望指教

[ Last edited by youlong699 on 2009-5-31 at 03:29 ]
作者: HAT     时间: 2009-5-31 10:55    标题: Re 5楼

if not "%CATALINA_HOME%" == ""
是为了判断你以前有没有定义过CATALINA_HOME这个环境变量
建议学习完整的bat语法
作者: youlong699     时间: 2009-5-31 11:47
是的,这一句倒是看明白了,谢谢!不是专门的研究windows平台,有时候分析一下脚本只是为了理解其运作原理,呵呵!有机会再研究研究完整的语法