プログラム 技術

batファイルで処理時間を計測する

前回はbathファイルで多重起動をしない方法について記載をしましたが、今回は処理時間計測についてとなります
本来は実装物内に仕込んだりして計測するべきものだと思うのですが、実装物には手を加えずにbatファイル側で計測するというのが今回の記事になります

前回の記事
batファイルで多重起動させない - ナストンのまとめ
batファイルで多重起動させない - ナストンのまとめ

個人でbatファイル経由でプログラムを実行することが多々あり、その際にbatファイルを誤って多重起動させてしまわないよう ...

前回の記事へ

遅延展開の有効化

後ほど出てきますが、時間取得をする際に使用するために有効化します

@echo off
REM 遅延展開の有効化
setlocal enabledelayedexpansion

時間計測を実装する

時間を分割して取得する

!time! は 12:34:56.90 のような形式の現在時刻が返却されるので、これを区切り文字 : と . で分割し、時(hh)・分(mm)・秒(ss)に代入します

for /f "tokens=1-4 delims=:." %%a in ("!time!") do (
    set "hh=%%a" & set "mm=%%b" & set "ss=%%c"
)

先頭ゼロの除去

set /a は 08 や 09 を8進数として解釈しエラーになるため、先頭に 1 を付けて 108 や 109 にし、100 を引くことで正しい10進数値(8, 9)を得るようにします

set /a "hh=1!hh!-100" 2>nul & set /a "mm=1!mm!-100" 2>nul & set /a "ss=1!ss!-100" 2>nul

秒への統一変換

時・分・秒をすべて秒数に換算して合算します

set /a "start=!hh!*3600+!mm!*60+!ss!"

経過時間の算出

これまでの時間処理を本来の処理の前後に記述し、そこから差を取得します

set /a "elapsed=end-start"
echo !elapsed!秒

最後に

これまでコードをまとめると以下のようになります。これで実装物に手を加えることなく時間計測ができるようになりました

@echo off
REM 遅延展開の有効化
setlocal enabledelayedexpansion

for /f "tokens=1-4 delims=:." %%a in ("!time!") do (
    set "hh=%%a" & set "mm=%%b" & set "ss=%%c"
)
set /a "hh=1!hh!-100" 2>nul & set /a "mm=1!mm!-100" 2>nul & set /a "ss=1!ss!-100" 2>nul
set /a "start=!hh!*3600+!mm!*60+!ss!"

REM ここに計測したい処理を記述

for /f "tokens=1-4 delims=:." %%a in ("!time!") do (
    set "hh=%%a" & set "mm=%%b" & set "ss=%%c"
)
set /a "hh=1!hh!-100" 2>nul & set /a "mm=1!mm!-100" 2>nul & set /a "ss=1!ss!-100" 2>nul
set /a "end=!hh!*3600+!mm!*60+!ss!"
set /a "elapsed=end-start"
echo !elapsed!秒

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社|ADS Co., Ltd.
アドバンスド・ソリューション株式会社|ADS Co., Ltd.

Microsoft 365/SharePoint/Power Platform/Azure による DX コンサル・シス ...

サイトへ移動

PR

-プログラム, 技術
-