日付と時刻 - バッチファイル

バッチで、現在の時刻を取得する方法。

特に何のことは無く、変数 %date%, %time% に入っている。その行を実行した瞬間の時刻が返される。

ただし、dateは「YYYY/MM/DD」、timeは「 H:MM:SS.FF」という形式。

特に時刻は、時間の部分が1桁だと、ゼロ埋めではなく頭に半角スペースの付いた形式で返されるため、注意。

例えばこの文字列を元にファイル名に使えるように「YYYYMMDD_HHMMSS」という文字列に加工する場合などは、それを認識して変換する必要がある。

具体的には、

  • 文字列置換で時刻のスペースを0に置換
  • 文字列置換で日付と時刻の各区切り文字(“/”, “:”)を空文字に置換
  • 文字列切り出しで時刻の小数点以下の秒数の部分は切り落とす
  • 日付と時刻と結合する
@echo off
rem 現在時刻の「YYYYMMDD_HHMMSS」形式の文字列を表示
 
echo %date% %time%
rem => 2018/02/19  1:23:45.67
 
set date_tmp=%date:/=%
set time_tmp=%time: =0%
set time_tmp=%time_tmp::=%
set datetime=%date_tmp%_%time_tmp:~0,6%
echo %datetime%
rem => 20180219_012345
programming/batch/datetime.txt · 最終更新: 2018/05/22 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0