Windowsのバッチファイルでは、システム時刻を扱うために「TIME」コマンドを使用します。このコマンドを利用することで、現在の時刻の表示や、特定の処理を時間に応じて制御することが可能です。本記事では、TIMEコマンドの基本的な使い方から応用的な活用方法まで詳しく解説します。
TIMEコマンドとは?
TIMEコマンドは、Windowsのコマンドプロンプト(cmd)やバッチファイルで利用できるコマンドの一つで、システムの時刻を取得または設定するために使用されます。
基本構文
TIME [/T]
または
TIME hh:mm:ss
オプション説明
/T
: 現在の時刻を表示するが、時刻変更は行わない。hh:mm:ss
: 指定した時刻に変更する。
TIMEコマンドの基本的な使い方
1. 現在の時刻を取得する
以下のコマンドを実行すると、現在の時刻が表示されます。
TIME /T
出力例:
14:30
2. 時刻を変更する
管理者権限がある場合、以下のコマンドでシステム時刻を変更できます。
TIME 15:00:00
このコマンドを実行すると、システムの時刻が「15:00:00」に変更されます。
バッチファイルでTIMEコマンドを活用する
バッチファイル内でTIMEコマンドを活用することで、処理のタイミングを調整したり、ログの管理を行ったりすることができます。
1. 現在の時刻を変数に格納する
@echo off
for /f "tokens=1-2 delims= " %%A in ('TIME /T') do set CURTIME=%%A
echo 現在の時刻は %CURTIME% です。
2. 指定時間まで待機する
TIMEOUTコマンドを組み合わせることで、特定の時間まで処理を待機させることができます。
@echo off
echo 10秒待機します...
TIMEOUT /T 10 /NOBREAK
echo 処理を続行します。
3. 実行時間を計測する
処理の実行時間を測定する際にもTIMEコマンドは有効です。
@echo off
set STARTTIME=%TIME%
echo 処理開始: %STARTTIME%
REM ここに処理を記述
TIMEOUT /T 5 /NOBREAK
set ENDTIME=%TIME%
echo 処理終了: %ENDTIME%
このバッチを実行すると、開始時刻と終了時刻が表示され、実行時間を確認できます。
TIMEコマンドの応用例
1. 時刻を使ったログファイルの作成
バッチ処理のログを時間別に記録するには、TIMEコマンドとDATEコマンドを組み合わせます。
@echo off
for /f "tokens=1-2 delims= " %%A in ('TIME /T') do set CURTIME=%%A
for /f "tokens=2-4 delims=/ " %%A in ('DATE /T') do set CURDATE=%%A-%%B-%%C
echo %CURDATE% %CURTIME% - バッチ処理開始 >> log.txt
echo 処理を実行中...
TIMEOUT /T 3 /NOBREAK
echo %CURDATE% %CURTIME% - バッチ処理終了 >> log.txt
このスクリプトを実行すると、log.txt
にタイムスタンプ付きのログが記録されます。
2. 特定の時間に処理を実行する
@echo off
:LOOP
for /f "tokens=1-2 delims= " %%A in ('TIME /T') do set CURTIME=%%A
if "%CURTIME%" == "15:00" goto EXECUTE
TIMEOUT /T 30
GOTO LOOP
:EXECUTE
echo 指定時間になりました。処理を開始します。
このスクリプトでは、15:00になるまで30秒間隔でチェックし、時間になったら処理を実行します。
まとめ
Windowsのバッチコマンド「TIME」を使えば、時刻の取得や変更、処理のタイミング調整などが可能です。特にログ管理やスケジュール実行など、さまざまな用途で活用できるため、バッチファイルを扱う際にはぜひ活用してみてください。