バッチファイルで日付・時刻を取得・整形・利用する方法を解説します。ログファイルやバックアップのタイムスタンプ命名に必須のスキルです。
%DATE%と%TIME%の基本
@echo off
echo 今日の日付: %DATE% :: 例: 2026/04/02
echo 現在の時刻: %TIME% :: 例: 9:30:45.12注意:%DATE%の書式はWindowsのロケール設定によって異なります。日本語環境ではYYYY/MM/DD形式が一般的です。
日付を整形してファイル名に使う
@echo off
set YYYY=%DATE:~0,4%
set MM=%DATE:~5,2%
set DD=%DATE:~8,2%
set HH=%TIME:~0,2%
set MIN=%TIME:~3,2%
set SS=%TIME:~6,2%
set HH=%HH: =0%
set DATETIME=%YYYY%%MM%%DD%_%HH%%MIN%%SS%
echo 日時文字列: %DATETIME%wmicを使ったロケール非依存の日付取得
wmic(Windows Management Instrumentation Command-line)を使うと、ロケール設定に依存せず確実にYYYYMMDD形式の日付を取得できます。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic os get LocalDateTime /value') do set DT=%%a
set YYYYMMDD=%DT:~0,8%
set HHMMSS=%DT:~8,6%
echo 日付: %YYYYMMDD%
echo 時刻: %HHMMSS%実践:タイムスタンプ付きバックアップ
@echo off
for /f "tokens=2 delims==" %%a in ('wmic os get LocalDateTime /value') do set DT=%%a
set STAMP=%DT:~0,8%_%DT:~8,6%
set SRC=C:\data
set DST=D:\backup\data_%STAMP%
mkdir "%DST%" 2>nul
xcopy "%SRC%" "%DST%\" /e /i /q
echo バックアップ完了: %DST%
pauseまとめ
- %DATE%と%TIME%でシステムの日付・時刻を取得できる
- ロケールに依存しない取得にはwmic os get LocalDateTimeが安全
- 時刻の先頭スペースは%HH: =0%で0埋めできる
- タイムスタンプをファイル名に付けるとバックアップ管理が楽になる
- 次の記事では引数の受け取り方を学ぶ


コメント