0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

windowsのバッチファイルで年月日・時分秒の情報を取得する

Posted at

TL;DR;

@ECHO OFF

SET NOW_DATE=%DATE%
SET NOW_TIME=%TIME%

SET YEAR=%NOW_DATE:~0,4%
SET MONTH=%NOW_DATE:~5,2%
SET DAY=%NOW_DATE:~8,2%

SET HOUR=%NOW_TIME:~0,2%
SET MINUTES=%NOW_TIME:~3,2%
SET SECOND=%NOW_TIME:~6,2%

SET TIMESTAMP=%YEAR%-%MONTH%-%DAY% %HOUR%:%MINUTES%:%SECOND%

ECHO YEAR      : %YEAR%   
ECHO MONTH     : %MONTH%  
ECHO DAY       : %DAY%    
ECHO HOUR      : %HOUR%   
ECHO MINUTES   : %MINUTES%
ECHO SECOND    : %SECOND%
ECHO TIMESTAMP : %TIMESTAMP%

PAUSE   

実行結果:

YEAR      : 2024
MONTH     : 10
DAY       : 05
HOUR      : 12
MINUTES   : 28
SECOND    : 27
TIMESTAMP : 2024-10-05 12:28:27

解説

SET NOW_DATE=%DATE%
SET NOW_TIME=%TIME%

現在日時を取得します。このときDATE・TIMEの実行結果が以下のような書式で取得できることを前提とします。

  • 2024/10/05
  • 12:37:38.35

SET YEAR=%NOW_DATE:~0,4%
SET MINUTES=%NOW_TIME:~3,2%

DATE・TIMEの結果を加工します。このとき、以下の書式を利用します。

  • %AAA:~x,n : AAAのx文字目からn文字を取得する (xは0-indexed)

NOW_DATE=2024/10/05の0文字目からの4文字が年(yyyyy)にあたるので、これを切り出してYEAR変数に代入しています。同じように、NOW_TIME=12:37:38.35の3文字目から2文字が分(MM)にあたるので、これを切り出してMINUTES変数に代入しています。

SET TIMESTAMP=%YEAR%-%MONTH%-%DAY% %HOUR%:%MINUTES%:%SECOND%

取得した年月日・時分秒の情報を文字列結合して、任意のフォーマットに編集しています。

環境情報

C:\>ver

Microsoft Windows [Version 10.0.22631.4169]
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?