2014-07-11 4 views
-3

명령/배치 파일의 타임 라인을 더 좋게하려면 어떻게합니까? 서버 재시작 타임 라인, 초 분 시간

@echo off 
       title Server Restarter 
     :start 
       set time=18000 
       start (exefile).exe 
     :loop 
       cls 
       IF %time% GTR 0 (
       set /a time=%time% - 1 
       set /a min=%time%/5 
       set /a hrs=%time%/10 
       echo (servername) will Restart In %time% Seconds. 
       echo (servername) will Restart in %time% Seconds, %min% Minutes, %hrs% Hours. 
       ping 127.0.0.1 -n 2 > NUL 
       goto loop 
      ) 
     taskkill /f /im (exefile).exe 
     cls 
    close server 
    goto start 

같은 코드 쇼를 만들 수있는 방법이 있나요

,

0-59 초 0-59 시간 0-24 일 0- (수)

등 ? 나는 많은 것을 시도했지만 올바르게 보여줄 시간을 얻지 못했습니다.

답변

0

귀하의 계산이 너무 쉽습니다.

@echo off 
set tim=180000 

:loop 
cls 
IF %tim% leq 0 goto done 
set /a day=%tim%/86400 
set /a hrs=(%tim%-day*86400)/3600 
set /a min=(%tim%-day*86400-%hrs%*3600)/60 
set /a sec=%tim%-day*86400-%hrs%*3600-%min%*60 
echo servername will Restart In %tim% Seconds. 
echo servername will Restart in %day% days, %hrs% hours, %min% Minutes and %sec% seconds. 
ping 127.0.0.1 -n 2 > NUL 
set /a tim-=1 
goto loop 

:done 
echo done. 

귀하의 주요 문제는 지연 확장을 필요 있도록 코드 (() 내부) 블록에 변수를 사용했다. 조건을 영리하게 사용하면 문제를 피할 수 있습니다. 그런데

는 : - 그들과 함께 혼란에 좋은 생각 - %time%은 시스템 변수이기 때문에 내가 %tim% 대신 %time%을 사용하여 작동 경우에도 마찬가지입니다.

+0

오, 그래, 스테판 고마워. – GrimmRP

관련 문제