これは、コマンドプロンプト(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

以上。