批处理文件 – 如何将今天的日期与文件的上次修改日期进行比较,

可以在
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

相关文章

发表回复

您的电子邮箱地址不会被公开。