2010-08-10 187 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