在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
谈到日期字符串的输出,真是让人烦。 在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以得到你要的输出:20120331-064219 1. 直接用字符串格式化输出 比如,如果你的机器上时间的输出是这样子的: 2.用for语句分断截取,似乎好点 先看看for的用法: 复制代码 代码如下: FOR /F ["options"] %variable IN (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string") DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters] optinos 复制代码 代码如下: c:\>for /f "tokens=1-3 delims=- " %1 in ("%date%") do set ttt=%1%2%3 c:\>set ttt=20120331 c:\>for /f "tokens=1-3 delims=.: " %1 in ("%time%") do set ttt=%ttt%-%1%2%3 c:\>set ttt=20120331-70131 写成批处理,就变成这样(goodtime.bat): 复制代码 代码如下: for /f "tokens=1-3 delims=- " %%1 in ("%date%") do set ttt=%%1%%2%%3 for /f "tokens=1-3 delims=.: " %%1 in ("%time%") do set ttt=%ttt%-%%1%%2%%3 echo goodtime=%ttt% 3.还有一种,是使用VBScript来定制输出 复制代码 代码如下: wscript.echo year(date) & right( "0" & month(date),2) & right( "0" & day(date),2) & "-" & right( "0" & hour(time),2) & right( "0" & minute(time),2) 结果如下,还是比较有意思的 复制代码 代码如下: c:\>cscript /nologo c:\shared\datescript.vbs 20120331-0711 当然这样还是不太理想,可以写个批处理,把结果弄到环境变量当中: mydate2.bat,内容如下: @echo off cscript /nologo datescript.vbs >> tmp.txt for /f "tokens=*" %%1 in (tmp.txt) do set goodtime=%%1 echo goodtime=%goodtime% 总结起来,第3种方法最复杂,目前还不能断定是否在所有windows平台都能正确运行,但是结果应该是固定的。不随着date,time格式变动而变动。但是1和2会依赖于日期时间的格式。仅此而已。 |
请发表评论