배치 스크립트를 사용하여 시작 및 종료 시간을 계산하려면 어떻게해야합니까? 단 몇 분만에 최종 출력을 원합니다 . 예를 들어 1 시간 30 분은 90 분이어야합니다.
비슷한 질문을 많이 찾았지만 최종 결과를 몇 분만에 계산하는 방법을 모르겠습니다.
@echo off
rem Get start time:
for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
)
rem Any process here...
ECHO Start of Loop
for /L %%n in (1,1,5000) do echo %%n
rem Get end time:
for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
)
rem Get elapsed time:
REM set /A elapsed=end-start
echo %start%
echo %end%
echo %elapsed%
rem Show elapsed time:
set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
set /A mm=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
if %mm% lss 10 set mm=0%mm%
if %ss% lss 10 set ss=0%ss%
if %cc% lss 10 set cc=0%cc%
echo %hh%:%mm% > time.csv
시간 : 분을 분으로 변환하려면 시간에 60을 곱한 다음 분을 더하십시오.
@echo off
rem Get start time:
for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
set /A "start=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
)
rem Any process here...
ECHO Start of Loop
for /L %%n in (1,1,5000) do echo %%n
rem Get end time:
for /F "tokens=1-4 delims=:.," %%a in ("%time%") do (
set /A "end=(((%%a*60)+1%%b %% 100)*60+1%%c %% 100)*100+1%%d %% 100"
)
rem Get elapsed time:
REM set /A elapsed=end-start
echo %start%
echo %end%
echo %elapsed%
rem Show elapsed time:
set /A hh=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
set /A mm=elapsed/(60*60*100), rest=elapsed%%(60*60*100), mm=rest/(60*100), rest%%=60*100, ss=rest/100, cc=rest%%100
set /a mm=%hh%*60+%mm%
if %mm% lss 10 set mm=0%mm%
echo.>time.csv
echo %mm%>>time.csv
일괄 처리는 0으로 시작하는 숫자를 10 진수가 아닌 8 진수로 간주하고 08과 09는 유효한 8 진수가 아닌 것으로 간주하므로 경과 시간이 8 분 또는 9 분 후에 종료되는 경우 변환 단계를 위로 이동했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다