2017-04-18 67 views
1

我正在做一个批处理文件,使大量的其他文件,我想按日期和时间如他们的名字显示如何更改日期%%

YYYY-MM-DD HH- MM-SS-MS

由于文件名不能包含“/”,“:”或“。”在Windows中,我需要更改显示日期和时间的方式,并更改显示顺序,以便在按名称排序时显示从最新到最旧的文件。

+3

不要使用'%日期%',它的环境相关。改用['wmic'](http://stackoverflow.com/q/15378719/995714)。分解变量并以任何你想要的方式使用日期值 –

回答

1

您可以替换字符串的部分:

C:\>echo %date% 
Mon 04/17/2017 

C:\>echo %date:/=-% 
Mon 04-17-2017 

的语法是:%Variable:[old-string]=[new-string]%

做类似时间:

C:\>set MYTIME=%time::=-% 
C:\>set MYTIME=%MYTIME:.=+% 
C:\>echo %MYTIME% 
21-35-18+60 

为了把它放在一起,打破了日成件:

set YR=%date:~-4% 
set DY=%date:~7,-5% 
set MO=%DATE:~4,-8% 

set MYTIME=%time::=-% 
set MYTIME=%MYTIME:.=-% 
echo %YR%-%MO%-%DY% %MYTIME% 

输出:

2017-04-17 21-43-06-05 
+0

那么,这解决了一半的问题,谢谢:) – marloso2