【问题标题】:batch file if statement based on datestamp of file基于文件日期戳的批处理文件 if 语句
【发布时间】:2016-04-08 11:48:20
【问题描述】:

我需要根据文件的时间戳对批处理文件执行进行分支。基本上,有一个文件必须每天生成一次,当天的任何时间都可以。

伪代码

if (last modified date stamp of c:\temp\file1.txt) equals (current date) then goto TaskSucceeded else goto TaskFailed :TaskFailed echo "Task Failed" exit /B :TaskSucceeded echo "Task Succeeded" exit /B

任何帮助将不胜感激。

【问题讨论】:

    标签: batch-file windows-7


    【解决方案1】:

    此 .bat 等待 1 分钟然后检查日期,然后执行操作 我从HERE得到它

    您可以将时间更改为每 24 小时一次,并将 CALL 文件替换为您要调用的文件

    @ECHO OFF
    
    :LOOP
    ECHO Waiting for 1 minute...
    PING -n 60 127.0.0.1>nul
    IF %DATE:~0,3%==Mon CALL SomeOtherFile.cmd
    IF %DATE:~0,3%==Tue CALL SomeOtherFile.cmd
    IF %DATE:~0,3%==Wed CALL SomeOtherFile.cmd
    IF %DATE:~0,3%==Thu CALL WootSomeOtherFile.cmd
    IF %DATE:~0,3%==Fri CALL SomeOtherFile.cmd
    IF %DATE:~0,3%==Sat ECHO Saturday...nothing to do.
    IF %DATE:~0,3%==Sun ECHO Sunday...nothing to do.
    GOTO LOOP
    

    阅读 .bat 中的日期函数

    【讨论】:

    • 我只是注意到它取出了我的一些伪代码。我实际上需要它以某种(任何)数字日期格式与 TODAY 进行比较。如果 filedate = today 然后做一些事情,否则做其他事情。如果 file1 的日期戳 = 今天的日期等。
    【解决方案2】:
    @ECHO OFF
    SETLOCAL
    SET "sourcedir=U:\sourcedir"
    SET "filename1=%sourcedir%\q36498808.txt"
    FOR %%a IN ("%filename1%") DO ECHO %date%|FINDSTR /L "%%~ta" 2>NUL >nul
    IF ERRORLEVEL 1 (ECHO failed) ELSE (ECHO succeeded)
    SET "filename1=my.7z"
    FOR %%a IN ("%filename1%") DO ECHO %date%|FINDSTR /L "%%~ta" 2>NUL >nul
    IF ERRORLEVEL 1 (ECHO failed) ELSE (ECHO succeeded)
    SET "filename1=missing.7z"
    FOR %%a IN ("%filename1%") DO ECHO %date%|FINDSTR /L "%%~ta" 2>NUL >nul
    IF ERRORLEVEL 1 (ECHO failed) ELSE (ECHO succeeded)
    
    GOTO :EOF
    

    由于您没有向我们展示您显示日期的格式 - dir 列表中的日期或 %date% 中的日期,因此以上只是一个建议。

    我只是使用方便的文件名进行测试。例程对我有用。

    该方法的关键在于,如果%date%Fri 08-04-2016 并且文件时间是08-04-2016 10:43am,那么findstr 将找到一个匹配项,就好像日期字符串或时间字符串由@ 提供一样987654328@ 然后findstr 将设置错误级别 0,如果日期字符串不匹配或文件丢失,将设置错误级别 1 或 2。

    您需要检查日期显示的精确分钟数,以确定它在您的情况下是否可靠。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-01
      • 2021-06-23
      • 1970-01-01
      • 2011-01-13
      • 2014-06-16
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多