2010-08-10 149 views
0

好的,这是问题所在。码头启动后的运行命令

我的目标是在Jetty启动时运行FF Portable。我的start.bat看起来像这样:

@echo off 
start /B start_jetty.bat 
start /B start_firefox.bat 

start_jetty.bat:

@echo off 
cd jetty-7.1.6/ 
java -jar start.jar 

start_firefox.bat:

@echo off 
ping -n 1 -w 6000 0.0.0.1 
"%cd%\FirefoxPortable\FirefoxPortable.exe" 

问题:

  1. 我怎样才能让start_firefox .bat在码头启动后执行?
  2. 完成 - 如何在没有任何控制台的情况下运行这两个批次?
  3. 如何停止firefox关闭后的码头?
  4. 有没有什么办法可以让它更清洁和更安全?

编辑:/ B作为启动命令选项消除了额外的控制台窗口。 edit2:窍门在Firefox启动,现在它等待6秒钟才开始。

回答

0

所以我的解决方案看起来像这样:

的start.bat:

@echo off 
REM is there java in system! 
cls 
setlocal ENABLEEXTENSIONS 
set KEY_NAME="HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" 
set VALUE_NAME=CurrentVersion 
FOR /F "usebackq skip=4 tokens=3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
    set ValueValue=%%A 
) 

if defined ValueValue (
    goto java_ok 
) else (
    goto java_not_ok 
) 

:java_not_ok 
REM there's no java 
msg * "There is no java in your system!" 
goto:EOF 

:java_ok 
REM there is java 
start /B start_jetty.bat 
start /B start_firefox.bat 
goto:EOF 

start_jetty.bat

@echo off 
cd jetty-7.1.6/ 
java -DSTOP.PORT=8087 -DSTOP.KEY=stopme -jar start.jar 

start_firefox.bat

@echo off 
ping -n 1 -w 6000 0.0.0.1 
"%cd%\GoogleChromePortable\GoogleChromePortable.exe" 
cd jetty-7.1.6/ 
java -DSTOP.PORT=8087 -DSTOP.KEY=stopme -jar start.jar --stop 

是的,我知道,启动Firefox实际上是启动铬,但!!

  1. 如果使用另一个Firefox,FirefoxPortable不会启动。
  2. 如果我决定将FFPortable设置为多实例,则在FFP打开后,start_firefox.bat中的指令立即执行。不在关闭之后。
+0

但控制台窗口打开时,你开始的码头?你最初的愿望只是运行命令而不将它输入到控制台窗口中? – FrenkyB 2014-01-06 05:34:19

1

关于第一个问题,试试这个:

@echo off 
    CALL start /B start_jetty.bat 
    CALL start /B start_firefox.bat 
+0

当我试图验证码我被困在不定式环... – tzim 2010-08-11 08:52:28

+0

嗯,我没有不定式;) – tzim 2010-08-11 09:03:05