log

日記です

Windowsのバッチで日付取得するのひと手間いる

日付や時間は環境変数に格納されている。日付は%date%に、時間は%time%に。
月や日付だけを取得したい、といったフォーマットを指定することができないため、%date%の文字を切り抜いて処理しないといけない。

普通に実行したとき

C:\> echo %time%
 9:47:44.44

時間を取得

C:\> echo %time:~0,2%
 9

うわ半角付きで返しやがった。10時だと問題ないが9時だと半角を返すので、時刻を起因とした見つけづらいバグを生むことが。
一度空白を0に置換した後に処理すれば問題ない。

C:\> set time_tmp=%time: =0%
C:\> echo %time_tmp:~0,2%
09

(Linux|Mac)使いたいですねっ