Board logo

标题: [日期时间] 批处理如何比较两个文件时间先后,并决定是否执行后续文件? [打印本页]

作者: delab-1    时间: 2024-8-28 17:26     标题: 批处理如何比较两个文件时间先后,并决定是否执行后续文件?

各位大神,有个问题想请教一下:

我有两个文件:一个是run.tab, 一个是run.exe; 我的批处理命令中需要下面的一个判断:
(1)当run.tab的时间比run.exe更新,就需要重新编译run.exe,再运行后续程序;
(2)当run.tab的时间比run.exe更旧,就不再编译run.exe,直接运行后续程序;

目前的困难是只会比较两个时间是否相同,但不会比较其先后,请大神们指导一下。

如果有比较便捷的方式最好,多多谢!
作者: newswan    时间: 2024-8-28 19:19

  1. dir /s /od run.tab run.exe
复制代码
最后的,就是最新的
作者: 77七    时间: 2024-8-28 19:20

如果在同一目录下,用 dir /od 按日期排序,获取最新的一个,精确度可能高点
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /a-d /od "run.tab" "run.exe"') do (
  3. set str=%%i
  4. )
  5. if "%str%" equ "run.tab" (
  6. echo 需要重新编译run.exe
  7. )
  8. pause
复制代码

作者: aloha20200628    时间: 2024-8-28 21:04

回复 1# delab-1
  1. @echo off
  2. for /f "tokens=1,2 delims=/" %%a in ("run.tab/run.exe") do (
  3. if "%%~ta" gtr "%%~tb" (echo,需要重新编译run.exe,再运行后续程序) else (echo,直接运行后续程序)
  4. )
  5. pause&exit/b
复制代码

作者: Five66    时间: 2024-8-29 00:29

啥时间??
作者: delab-1    时间: 2024-8-29 22:53

太感谢了!!!大家的回答都非常好,特别感谢77七、aloha20200628、newswan




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2