AI ANSWERS by 1 NOTES

WEB制作、AI、Windows、アプリの使い方など様々な疑問を解決する

バッチファイルで経過時間を取得するには

バッチファイル内で経過時間を取得するには、以下の手順を試してみることができます。ここでは、Windowsのバッチファイルを使用する方法を説明します。

@echo off
setlocal

REM 開始時刻を取得
set "start_date=%date%"
set "start_time=%time%"

REM 開始時刻の表示
echo 開始時刻: %start_date% %start_time%

REM ここに実行したいコマンドを記述

endlocal

@echo off
setlocal

REM 開始時刻を取得
set "start_date=%date%"
set "start_time=%time%"

REM ここに実行したいコマンドを記述

REM 終了時刻を取得
set "end_date=%date%"
set "end_time=%time%"

REM 開始時刻と終了時刻の表示
echo 開始時刻: %start_date% %start_time%
echo 終了時刻: %end_date% %end_time%

REM 時間の計算と表示(経過時間)
call :GetTimeDifference %start_time% %end_time%
echo 経過時間: %time_diff%

endlocal
exit /b

:GetTimeDifference
setlocal
set "start_time=%~1"
set "end_time=%~2"

REM 開始時刻の時・分・秒を抽出
for /f "tokens=1-3 delims=:." %%a in ("%start_time%") do (
	set "start_hour=%%a"
	set "start_minute=%%b"
	set "start_second=%%c"
)

REM 終了時刻の時・分・秒を抽出
for /f "tokens=1-3 delims=:." %%a in ("%end_time%") do (
	set "end_hour=%%a"
	set "end_minute=%%b"
	set "end_second=%%c"
)

REM 時間の差を計算
set /a "hour_diff=end_hour-start_hour"
set /a "minute_diff=end_minute-start_minute"
set /a "second_diff=end_second-start_second"

REM 時間の調整(マイナス値や60秒以上の場合)
if %second_diff% lss 0 (
	set /a "second_diff+=60"
	set /a "minute_diff-=1"
)
if %minute_diff% lss 0 (
	set /a "minute_diff+=60"
	set /a "hour_diff-=1"
)

REM 経過時間を設定
set "time_diff=%hour_diff%時間 %minute_diff%分 %second_diff%秒"
endlocal & set "time_diff=%time_diff%"
exit /b

このバッチファイルでは、開始時刻と終了時刻の差から経過時間を計算して表示する方法が示されています。必要に応じて、このコードをカスタマイズして、自分のニーズに合った結果を得ることができます。