【Windowsバッチファイル(.bat)】YYYYMMDDhhmmss形式で日時を取得する


この記事はプロモーションを含みます。

Windows

ホーム > コマンドプロンプト・バッチファイル リファレンス

Windowsのバッチで、現在日時をYYYYMMDDhhmmss形式で取得する方法を解説します。

はじめに

前回は、下記のような現在日時(日付、時刻)を取得する方法を解説しました。

2024/03/24  8:42:05

この形式は見やすいですが、記号を含んでいるためファイル名にすることが出来ません。
(→バックアップ時のファイル名として使えないなど)

本記事では、現在日時を「YYYYMMDDhhmmss」形式で取得する方法を解説します。
下記は前回の記事になります。

日付をYYYYMMDD形式で取得する

現在の日付を「YYYYMMDD」形式で取得する方法です。
dateコマンドで取得される形式「YYYY/MM/DD」から「/」を消去しました。

@echo off

echo %date:/=%

実行結果です。

E:\Work>test.bat
20240324

時刻をhhmmss形式で取得する

現在の時刻を「hhmmss」形式で取得する方法です。
timeコマンドで取得出来る時刻ですが、時間が1桁の場合は半角スペースで埋められます。
なので、まずは半角スペースを「0」に置換しています。
次にコロン(:)と小数点以下の値以外を取得しています。(以下の赤字部分を取得)
10:14:18.12

@echo off


set timetmp=%time: =0%
echo %timetmp:~0,2%%timetmp:~3,2%%timetmp:~6,2%

実行結果です。

E:\Work>test.bat
101418

日時をYYYYMMDDhhmmss形式で取得する

前項で説明した日付と時刻を組み合わせて、日時をYYYYMMDDhhmmss形式で取得する方法です。

@echo off

set timetmp=%time: =0%
echo %date:/=%%timetmp:~0,2%%timetmp:~3,2%%timetmp:~6,2%

実行結果です。

E:\Work>test.bat
20240324200848

日付と時刻の間にアンダーバーを付ける

日付と時刻の間にアンダーバー(_)を付けて、YYYYMMDD_hhmmss形式にする方法です。

@echo off

set timetmp=%time: =0%
echo %date:/=%_%timetmp:~0,2%%timetmp:~3,2%%timetmp:~6,2%

実行結果です。

E:\Work>test.bat
20240324_201008

コメント

タイトルとURLをコピーしました