これは、コマンドプロンプト(cmd.exe) Advent Calendar 2015 - Qiitaの13日目の記事です。※Windows 10 Home 64bit 搭載のcmd.exeにて検証を行っています。タイトルの通りです。
解
1
2
3
|
C:\Users\kunst>for /f "usebackq tokens=*" %i in (`echo %date:/=%%time::=%`) do @echo %~ni
20151213211021
|
解説
分解してみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
C:\Users\kunst>echo %date%
2015/12/13
C:\Users\kunst>echo %date:/=%
20151213
C:\Users\kunst>echo %time%
21:11:10.04
C:\Users\kunst>echo %time::=%
211113.91
C:\Users\kunst>echo %date:/=%%time::=%
20151213211127.96
|
最後のワンライナーで、「yyyyMMddHHmmss」+小数点以下2桁のタイムスタンプ文字列が得られました。この最後のワンライナーを、コマンドとしてfor文に渡します。
1
2
3
|
C:\Users\kunst>for /f "usebackq tokens=*" %i in (`echo %date:/=%%time::=%`) do @echo %i
20151213211309.75
|
さらにここから、
**小数点以下2桁の数字を拡張子とみなし**て、**ファイル名の部分だけを取り出す**すことで、前半を切り離すことができます。
(詳しくは、
コマンドプロンプトで読んでおくべき7つのHELP - その④「for /?」 - くんすとの備忘録 の「『%変数』の展開について」の項で取り上げています)
1
2
3
|
C:\Users\kunst>for /f "usebackq tokens=*" %i in (`echo %date:/=%%time::=%`) do @echo %~ni
20151213211514
|
以上。