可以在
Windows系统上获取当前日期以及文件的最后修改日期,例如:
>当前日期:日期/ T.
>上次修改日期:±echo%~tI%(其中%I是FOR循环中的文件)
然而,两者都取决于区域设置,因此需要用其他东西替换它们:
>当前日期:wmic os获取localdatetime
>最后修改日期:???
有人知道如何填写问号吗?
背景信息,想法是获得如下结果:
>当前日期:20170323115047.782000 060
>最后修改日期:20170323120513.0123
砍掉前八个字符(为了得到这一天)
>当前日期:20170323
>最后修改日期:20170323
这使得可以看到文件今天确实已被修改.
我想避免区域设置,以确保我需要切断的字符数量.
解决方法
以下批处理通过wmic输出它自己的lastmodified datetime.
@Echo off&SetLocal set File=%~f0 :: need to escape \ with another one \\ set File=%File:\=\\% for /f %%a in ( 'wmic DataFile where "Name='%File%'" get lastmodified ^| findstr "^[0-9]" ' ) do Echo File:%File% lastmodified:%%a
样本输出
> 12-16.cmd File:Q:\\Test\\2017-03\\23\\12-16.cmd lastmodified:20170323123900.908030+060