Windowsバッチで現在日付を取得する / フォーマットする方法(yyyMMddhhmmss)

Windowsバッチ(*.bat)で、現在日付を取得する方法をまとめたので、ここにメモしておきます。

 

現在日付を取得する

現在日付は「%date%」で、現在日時は「%time%」で取得することが可能です。

sample1-1.bat

@echo off
rem 現在日付
echo %date%
rem 現在時刻
echo %time%

結果

c:\sample\bat\date>sample1-1.bat
2020/07/21
19:20:14.73

 

 

ハイフンを削除するなど、日付のフォーマットをしたい場合は、単純に取得した日付文字を置換することで実現します。

sample1-2.bat

@echo off
rem yyyMMddへフォーマット
echo %date:~0,4%%date:~5,2%%date:~8,2%

rem hhmmssへフォーマット
echo %time:~0,2%%time:~3,2%%time:~6,2%

rem yyyMMddhhmmssへフォーマット
echo %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

結果

c:\sample\bat\date>sample1-2.bat
20200721
192403
20200721192403

 

0埋めの時間を取得する方法

上記のコードだけでは時間を出力する際、不都合が生じます。

echo %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

上記のコマンドを実行する時、0時から9時の時間帯では文字数が1文字になってしまい、間にスペースが入る格好になってしまいます。

rem 19時の場合の出力結果
20200721193001
rem 9時の場合の出力結果
20200721 91030

 

上記の事象を解消するためには、あらかじめ取得した時間に対して「スペースを0で置換する」処理で解消することができます。

rem 0埋め
set tmptime=%time: =0%
echo %date:~0,4%%date:~5,2%%date:~8,2%%tmptime:~0,2%%tmptime:~3,2%%tmptime:~6,2%

結果

rem 19時の場合の出力結果
20200721193001
rem 9時の場合の出力結果
20200721091030

 

以上です。



投稿日:2020-07-21    更新日:2020-07-29

[スポンサーリンク]

サイト内検索
プロフィール

プロフィール

[Name : じゃぶじゃぶ(@jbjb_2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

[スポンサードリンク]