windows - 如何在不受区域设置影响的情况下将今天的日期与文件的最后修改日期进行比较?

标签 windows date batch-file command-line regional-settings

可以在 Windows 系统上获取当前日期和文件的最后修改日期,如下所示:

  • 当前日期:date /T
  • 最后修改日期:± echo %~tI% (其中 %IFOR 循环中的文件)

  • 然而,两者都取决于区域设置,因此它们需要被其他东西替换:
  • 当前日期:wmic os get localdatetime
  • 最后修改日期:???

  • 有人知道问号怎么填吗?

    背景信息,想法是得到如下结果:
  • 当前日期:20170323115047.782000+060
  • 最后修改日期:20170323120513.0123

  • 砍掉前八个字符(为了得到这一天)
  • 当前日期:20170323
  • 最后修改日期:20170323

  • 这使得可以看到该文件今天确实已被修改。
    我想避免区域设置,以确保我需要砍掉的字符数量。

    最佳答案

    对于时间戳比较,您可以使用 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/

    相关文章:

    c++ - Windows UAC 设置为始终通知时无法写入注册表

    Linux DATE 两台服务器之间有几秒的间隔?

    oracle - 想要在oracle DB上运行sql脚本(用窗口批处理文件编写)

    visual-studio - 从 bash 脚本调用 vcvars

    windows - 批处理文件 将多个目录中具有特定扩展名的文件复制到一个目录中

    python - Windows 10 - python pip 不工作(添加了环境变量)

    windows - 写入实际的 git 存储库时使用什么行尾?

    windows - 小型桌面应用程序,简单的 GUI,易于部署 : language/framework choices?

    java - 如何更改当前日期

    javascript - moment.js - 测试日期是今天、昨天、一周或两周前