找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22643|回复: 2

[文件操作] 批处理实现文件时间判断的问题

[复制链接]
发表于 2015-8-26 16:23:46 | 显示全部楼层 |阅读模式
  1. cd \1aep
  2. set jobid=
  3. v:\run\echox -c 74 "%date%%time%孤立TXT处理标志位"
  4. for %%a in (*.txt) do (
  5. set list=%%a
  6. timeout -t 2 >nul
  7. for /f "tokens=1,2 delims=:. " %%i in ("!time!") do (
  8. if %%i lss 10 (set h=10%%i) else (set h=1%%i)
  9. if %%j lss 10 (set s=10%%j) else (set s=1%%j)
  10. set /a "sysTime=(!h!-100)*60+(!s!-100)"
  11. )
  12. for /f "tokens=4,5 delims=:-/ " %%j in ("%%~ta") do (set /a "fileTime=(1%%j-100)*60+(1%%k-100)")
  13. set /a dtime=!sysTime!-!fileTime!
  14. if !dtime! lss 0 (set /a dtime=!dtime:~1!)
  15. if !dtime! gtr !zhi! (
  16. echo 系统时间:!sysTime! 文件时间:!fileTime! 间隔:!dtime!        发现孤立文件!!list!
  17. for /f "tokens=1,2,* delims==" %%a in ('findstr /ibc:"num" !list!') do (set num=%%b)
  18. for /f "tokens=1,2,* delims==" %%a in ('findstr /ibc:"lab" !list!') do (set aepname=%%b)
  19. for /f "tokens=1,2,3,4,5,6,7,8 delims="  %%q in ('findstr /ibc:"Path" !list!') do (set ppath=%%u)
  20. for /l %%a in (1,1,!num!) do (
  21. for /f "tokens=1,* delims=="  %%a in ('findstr /c:"JobID%%a" %aepath%\!list!') do (set jobid=%%b)
  22. echo AEP文件名:!aepname!        订单号:!ppath! 任务数:!num!
  23. call :fenxi
  24. )
  25. )
  26. )
  27. goto 4th
复制代码
代码本身有一个问题:当符合条件的文件和不符合条件的文件都存在的时候,这段代码会把不符合条件的文件名也送入fenxi子过程。
应该怎么调整呢?
发表于 2015-8-26 17:10:48 | 显示全部楼层
回复 1# chouxia

在逻辑判断的地方加入goto :eof ?
大概看了一遍,没看懂。。。能否把验证的文件弄成附件给大家验证呢?
 楼主| 发表于 2015-8-26 17:37:13 | 显示全部楼层
17-22行不重要。
这部分代码的意思是
取当前目录下所有txt文件的修改时间并和系统当前时间进行比较
超出一定的值以后走17-22行获取变量 然后call fenxi
现在的问题是第15行if !dtime! gtr !zhi! 有问题
不符合条件的txt文件也会通过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 16:03 , Processed in 0.018493 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表