WindowsバッチでyyyyMMddHHmmssを取得する
code:dos
set NOW=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set NOW=%NOW: =0%
そんなに厳密じゃなくていい
人間が実行する間隔で被らなければとりあえず良い
code:dos
set NOW=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set NOW=%NOW: =0%
echo %NOW%
code:ㅤ
20201002114933
20201005094208
...
日付と時刻を取得する
dateコマンドとtimeコマンドで取得できる
スラッシュとコロンはファイル名に使えないから取り除きたい
code:dos
echo %date%
code:ㅤ
2019/09/10
code:dos
echo %time%
code:ㅤ
15:52:07.52
置換、もしくは指定した文字の箇所を抽出する
変数%date%の/を空文字に置換する
code:dos
echo %date:/=%
code:ㅤ
20190910
変数%date%の0番目から4文字分(年)、5番目から2文字分(月)、8番目から2文字分(日)取得する
code:dos
echo %date:~0,4%%date:~5,2%%date:~8,2%
code:ㅤ
20190910
timeも同様、ただし、一桁だと空白が入る?
入る
時が一桁の場合だけ0埋めされない
code:dos
time
code:ㅤ
現在の時刻: 9:24:02.75
このままdateとtimeの数値だけ繋ごうとしたらこうなる
code:dos
set NOW=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
echo %NOW%
code:ㅤ
20201002 92710
ここからさらに空白を置換すれば0になる
code:dos
echo %NOW: =0%
code:ㅤ
20201002093501
一文で書きたいけど切り出しと置換を一文で書けるのかわからない
なのでこう
code:dos
echo %time::=%
code:ㅤ
161615.25
code:dos
echo %time:~0,2%%time:~3,2%%time:~6,2%
code:ㅤ
161518
なかなか覚えられない
ログ
時刻が1桁の場合、時刻の2桁目が空白になってしまうので0埋めするようにした(2020/10/02 11:51:20) 見に来た(2023/08/25)