gpt4 book ai didi

Windows 批处理文件检查文件的修改日期,如果不是特定值则输出到日志文件

转载 作者:可可西里 更新时间:2023-11-01 13:51:02 25 4
gpt4 key购买 nike

我需要记录在特定文件夹中没有特定文件的系统,并创建了以下工作正常的批处理。它将由域登录脚本调用(客户端是 2003 AD 域中的 Windows XP):

IF EXIST "C:\Documents and Settings\%username%\Application Data\Microsoft\Outlook\test.OTM" (
goto END
) ELSE (
echo %DATE%_%TIME%_%COMPUTERNAME% >> %LOG1%
)

除此之外,如果文件存在,我需要检查它是否有特定的修改日期,如果没有,则将其输出到日志文件。到目前为止,我很困惑,非常感谢对此的任何反馈/帮助。谢谢。

最佳答案

您可以在批处理脚本中获取有关文件修改日期和时间的信息,但您需要记住以下事项:

  • 它是日期和时间的组合;
  • 它是特定于语言环境的;
  • 这是一个字符串

这意味着在进行比较之前,您需要去掉时间部分,为此您需要考虑系统区域设置中指定的显示格式。因为它是一个字符串,所以您可能只能检查它是否是特定日期,而不能检查它是否属于特定时期。

下面是如何实现它:

SET filename="C:\Documents and Settings\%username%\Application Data\Microsoft\Outlook\test.OTM"
IF NOT EXIST %filename% GOTO log
FOR %%f IN (%filename%) DO SET filedatetime=%%~tf
IF "%filedatetime:~0,-6%" == "%checkdate%" GOTO END
:log
ECHO %DATE%_%TIME%_%COMPUTERNAME% >> %LOG1%

在我的系统上 %%~tf将返回格式为 dd.MM.yyyy hh:mm 的日期和时间.所以 %filedatetime:~0,-6%部分遵循该格式并相应地切断时间部分。您可能需要稍微更改表达式以适合您的情况。

最后一件事是,有一个名为 USERPROFILE 的预定义变量.它指向事件用户的“主”文件夹,C:\Documents and Settings\<i>username</i> .因此,您可以将路径字符串缩减为:"%USERPROFILE%\Application Data\Microsoft\Outlook\test.OTM" .

关于Windows 批处理文件检查文件的修改日期,如果不是特定值则输出到日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5231063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com