2009年11月20日金曜日

【cmd.exe】TIPS 日付と時間

%DATE%と%TIME%はよく使うんだけどこんなこともできるんだと・・・

これは普通のパターン
 

C:\>echo %DATE%
2009/11/20

C:\>echo %TIME%
 23:35:33.38


だけど:[before]=[after]を使うと変数内の特定文字を変換できる

C:\>echo %date:/=-%     <--- スラッシュをハイフンに
2009-11-20

C:\>echo %time::= %     <--- コロンを空白に
23 41 35.42


C:\>echo %time::=%     <--- コロンをなんも無しに
234135.42


そこでよくあるのがtimestamp処理
LOGファイル名の自動生成などで使いますよね

C:\>echo %DATE:/=%%TIME::=%
20091120234921.37


でもここで課題が二つ

(1)ミリ秒の後ろ三ケタがジャマ
(2)AM10:00以前のヒトケタ空白をどうするか

C:\>time /t
01:52

C:\>echo %TIME%
 1:54:02.80

C:\>echo %DATE:/=%%TIME::=%
20091120 15424.15

TIME/Tだとゼロがつくのにぃ・・・・


みんなどうしてるのかな?

フェーズ0

とりあえず作成

これからすこしづつ整備していきたいと思います