我想創建一個while(服務器不可達)循環。批處理文件中沒有while
,但可以使用goto
完成。所以我有一些代碼檢查服務器是否可以訪問,如果不是,它會在5秒後再次嘗試。如果可以訪問,它將重新啓動服務器。批處理while循環
這裏是我的嘗試: 「GOTO不工作」
:loop
for /f "delims=" %a in ('curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/project/html5/') do @set status=%a
if %status% == 404 (
echo Server not reachable... trying again...
timeout /T 5 /nobreak
goto loop
) else (
if %status% == 000 (
echo Server offline... trying again...
timeout /T 5 /nobreak
goto loop
echo GOTO NOT WORKING!
) else (
echo Server reachable! SUCCESS!
)
)
它總是打印但這怎麼可能?我也試過「轉到:循環」,但其還沒有工作...
之後,我曾試圖用一個簡單的無限循環:
:loop
echo TEST
GOTO loop
這是工作......爲什麼?它同樣沒有如果表達...
你的'for'命令的參數缺少2%:'for/f「delims =」%% a in(... @set status = %% a' – Aacini
也改變你的if %status%== 404' and'if%status%== 000' to'if「%status%」==「404」'and'if「%status%」==「000」'。 – Compo