可以在 Windows 系统上获取当前日期和文件的最后修改日期,如下所示:
date /T
echo %~tI%
(其中 %I
是 FOR
循环中的文件)然而,两者都取决于区域设置,因此它们需要被其他东西替换:
wmic os get localdatetime
有人知道问号怎么填吗?
背景信息,想法是得到如下结果:
砍掉前八个字符(为了得到这一天)
这使得可以看到该文件今天确实已被修改。
我想避免区域设置,以确保我需要砍掉的字符数量。
最佳答案
对于时间戳比较,您可以使用 forfiles
查找今天修改的文件。这个解决方案比我认为从 WMI 查询结果中切出子字符串更优雅。
@echo off & setlocal
set "file=notes.txt"
forfiles /d +0 /m "%file%" >NUL 2>NUL && (
echo %file% was modified today.
) || (
for %%I in ("%file%") do echo %%~I was last modified %%~tI
)
forfiles /?
在 cmd 控制台中获取更多信息。 forfiles
命令在匹配时退出 0,在不匹配时退出 1,允许使用 conditional execution .另外,see this related question .
关于windows - 如何在不受区域设置影响的情况下将今天的日期与文件的最后修改日期进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42974028/