帮忙分析一下下面的启动java项目的bat脚本,每行是什么意思,原理等。
@ECHOOFFCD..SETJAVA=javaSETJSLHOME=%CD%SETJSLLIB=%JSLHOME%\libSETJUSERLIB=%JSLHOME%\l...
@ECHO OFF
CD ..
SET JAVA=java
SET JSLHOME=%CD%
SET JSLLIB=%JSLHOME%\lib
SET JUSERLIB=%JSLHOME%\lib
SET CLASSPATH=.
FOR %%F IN (%JSLLIB%\*.jar,%JUSERLIB%,%JUSERLIB%\*.jar) DO call :addcp %%F
goto SEL;
:addcp
SET CLASSPATH=%CLASSPATH%;%1
goto :EOF
:SEL
echo.
echo 1:启动服务器
echo 2:停止服务器(等待已有任务结束)
echo 3:关闭服务器(立即停止)
echo 4:监控服务状态
echo 5:客户端测试
echo 6:版本
echo 7:帮助
echo q:退出
echo.
SET /p sel=请选择:
SET SLCMD=-help
if /i "%sel%" == "q" exit
if /i "%sel%" == "1" SET SLCMD=-start & goto RUN;
if /i "%sel%" == "2" SET SLCMD=-stop & goto RUN;
if /i "%sel%" == "3" SET SLCMD=-shutdown & goto RUN;
if /i "%sel%" == "4" SET SLCMD=-monitor & goto RUN;
if /i "%sel%" == "5" SET SLCMD=-client & goto RUN;
if /i "%sel%" == "6" SET SLCMD=-version & goto RUN;
:RUN
%JAVA% -cp %CLASSPATH% com.sunyard.sunlink.SunLinkAdmin %SLCMD%
if /i "%sel%" == "4" goto MONITOR;
goto SEL;
:MONITOR
SET /p var=是否继续(y或n)?
if /i "%var%" == "y" goto RUN;
goto SEL; 展开
CD ..
SET JAVA=java
SET JSLHOME=%CD%
SET JSLLIB=%JSLHOME%\lib
SET JUSERLIB=%JSLHOME%\lib
SET CLASSPATH=.
FOR %%F IN (%JSLLIB%\*.jar,%JUSERLIB%,%JUSERLIB%\*.jar) DO call :addcp %%F
goto SEL;
:addcp
SET CLASSPATH=%CLASSPATH%;%1
goto :EOF
:SEL
echo.
echo 1:启动服务器
echo 2:停止服务器(等待已有任务结束)
echo 3:关闭服务器(立即停止)
echo 4:监控服务状态
echo 5:客户端测试
echo 6:版本
echo 7:帮助
echo q:退出
echo.
SET /p sel=请选择:
SET SLCMD=-help
if /i "%sel%" == "q" exit
if /i "%sel%" == "1" SET SLCMD=-start & goto RUN;
if /i "%sel%" == "2" SET SLCMD=-stop & goto RUN;
if /i "%sel%" == "3" SET SLCMD=-shutdown & goto RUN;
if /i "%sel%" == "4" SET SLCMD=-monitor & goto RUN;
if /i "%sel%" == "5" SET SLCMD=-client & goto RUN;
if /i "%sel%" == "6" SET SLCMD=-version & goto RUN;
:RUN
%JAVA% -cp %CLASSPATH% com.sunyard.sunlink.SunLinkAdmin %SLCMD%
if /i "%sel%" == "4" goto MONITOR;
goto SEL;
:MONITOR
SET /p var=是否继续(y或n)?
if /i "%var%" == "y" goto RUN;
goto SEL; 展开
2013-09-07
展开全部
全贴回来,会太长,不让提交。
总述 :MONITOR 冒号开头的是标签,可以用GOTO跳转到。语句后面不需要加;
REM 这个是枚举jsllib等几个变量对应里面的.jar路径添加到CLASSPATH
FOR %%F IN (%JSLLIB%\*.jar,%JUSERLIB%,%JUSERLIB%\*.jar) DO call :addcp %%F
goto SEL;
REM 这里是接收命令行输入,然后执行相应 的命令
SET /p sel=请选择:
REM 如果是空命令,则给默认的命令
SET SLCMD=-help
REM if ........ 这一堆,就是判断前面的输入,然后执行设置命令、跳转到RUN
REM 执行完毕了,如果之前的命令选择是4,跳转到MONITOR
if /i "%sel%" == "4" goto MONITOR;
REM 原来MONITOR是又让用户进行输入、选择
SET /p var=是否继续(y或n)?
总述 :MONITOR 冒号开头的是标签,可以用GOTO跳转到。语句后面不需要加;
REM 这个是枚举jsllib等几个变量对应里面的.jar路径添加到CLASSPATH
FOR %%F IN (%JSLLIB%\*.jar,%JUSERLIB%,%JUSERLIB%\*.jar) DO call :addcp %%F
goto SEL;
REM 这里是接收命令行输入,然后执行相应 的命令
SET /p sel=请选择:
REM 如果是空命令,则给默认的命令
SET SLCMD=-help
REM if ........ 这一堆,就是判断前面的输入,然后执行设置命令、跳转到RUN
REM 执行完毕了,如果之前的命令选择是4,跳转到MONITOR
if /i "%sel%" == "4" goto MONITOR;
REM 原来MONITOR是又让用户进行输入、选择
SET /p var=是否继续(y或n)?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询