2015-11-04 80 views
1

我是蝙蝠脚本的新手。我想要下面的脚本来检查网络是否启动,如果不重新启动coldfusion并将所有信息保存到日志文件中。窗口蝙蝠检查网站并重新启动coldfusion

@REM Remove any existing files. 
    del C:\Users\Administrator\check.txt 

    @REM to download file 
    wget -O check.txt --no-check-certificate https://10.2.3.30/ebanking/ch/en-en/index.cfm 

    @REM Search for the term in the previously downloaded file. 

    FINDSTR /C:"index.cfm" check.txt 
    if errorlevel equ 1 notfound 
    found 
    cls 


    :notfound 

    echo notfound > log.txt 
    echo stopping ebanking >> log.txt 
    call C:\ColdFusion10\cfusion\bin\cfstop.bat 

    echo starting ebanking >> log.txt 
    call C:\ColdFusion10\cfusion\bin\cfstart.bat 
    cls 
    exit 

    :found 
    echo found >> log.txt 

    cls 
    exit 
+2

除非你想这个问题,关闭为'不清楚你在做什么问'编辑问题,并指定什么是问题,并确保描述是详细的。 – wOxxOm

回答

0

您的标签notfound错过goto命令。对于逻辑,我换NOTFOUND之间标签/发现

@echo off 

pushd "C:\Users\Administrator" 

@REM Remove any existing files. 
del check.txt 

@REM to download file 
wget -O check.txt --no-check-certificate https://10.2.3.30/ebanking/ch/en-en/index.cfm 

@REM Search for the term in the previously downloaded file. 

FINDSTR /C:"index.cfm" check.txt 
if errorlevel equ 1 (goto notfound) 

:found 
echo found >> log.txt 
exit /b 0 

:notfound 
echo notfound > log.txt 
echo stopping ebanking >> log.txt 
call C:\ColdFusion10\cfusion\bin\cfstop.bat 

echo starting ebanking >> log.txt 
call C:\ColdFusion10\cfusion\bin\cfstart.bat 
exit 

您可以将代码简化为一个循环以下

@echo off 
set "someurl=https://10.2.3.30/ebanking/ch/en-en/index.cfm" 
:loop 
wget --server-response -nv --spider %someurl% 2>&1 | find "HTTP/1.1 200 OK">nul 
if errorlevel 1 (
    echo %DATE% %TIME%: stopping ebanking>> log.txt 
    call C:\ColdFusion10\cfusion\bin\cfstop.bat 
    timeout 5>nul 
    echo %DATE% %TIME%: starting ebanking>> log.txt 
    call C:\ColdFusion10\cfusion\bin\cfstart.bat 
) else (
    echo %DATE% %TIME%: site is up>> log.txt 
) 
rem Wait 1 hour before loop 
timeout 3600 
goto loop 
+0

非常感谢。几乎没有调整,它满足了我的需求。 – Drsin