标题: [文件操作] 批处理实现文件时间判断的问题 [打印本页]
作者: chouxia 时间: 2015-8-26 16:23 标题: 批处理实现文件时间判断的问题
- cd \1aep
- set jobid=
- v:\run\echox -c 74 "%date%%time%孤立TXT处理标志位"
- for %%a in (*.txt) do (
- set list=%%a
- timeout -t 2 >nul
- for /f "tokens=1,2 delims=:. " %%i in ("!time!") do (
- if %%i lss 10 (set h=10%%i) else (set h=1%%i)
- if %%j lss 10 (set s=10%%j) else (set s=1%%j)
- set /a "sysTime=(!h!-100)*60+(!s!-100)"
- )
- for /f "tokens=4,5 delims=:-/ " %%j in ("%%~ta") do (set /a "fileTime=(1%%j-100)*60+(1%%k-100)")
- set /a dtime=!sysTime!-!fileTime!
- if !dtime! lss 0 (set /a dtime=!dtime:~1!)
- if !dtime! gtr !zhi! (
- echo 系统时间:!sysTime! 文件时间:!fileTime! 间隔:!dtime! 发现孤立文件!!list!
- for /f "tokens=1,2,* delims==" %%a in ('findstr /ibc:"num" !list!') do (set num=%%b)
- for /f "tokens=1,2,* delims==" %%a in ('findstr /ibc:"lab" !list!') do (set aepname=%%b)
- for /f "tokens=1,2,3,4,5,6,7,8 delims=\" %%q in ('findstr /ibc:"Path" !list!') do (set ppath=%%u)
- for /l %%a in (1,1,!num!) do (
- for /f "tokens=1,* delims==" %%a in ('findstr /c:"JobID%%a" %aepath%\!list!') do (set jobid=%%b)
- echo AEP文件名:!aepname! 订单号:!ppath! 任务数:!num!
- call :fenxi
- )
- )
- )
- goto 4th
复制代码
代码本身有一个问题:当符合条件的文件和不符合条件的文件都存在的时候,这段代码会把不符合条件的文件名也送入fenxi子过程。
应该怎么调整呢?
作者: xudaweb 时间: 2015-8-26 17:10
回复 1# chouxia
在逻辑判断的地方加入goto :eof ?
大概看了一遍,没看懂。。。能否把验证的文件弄成附件给大家验证呢?
作者: chouxia 时间: 2015-8-26 17:37
17-22行不重要。
这部分代码的意思是
取当前目录下所有txt文件的修改时间并和系统当前时间进行比较
超出一定的值以后走17-22行获取变量 然后call fenxi
现在的问题是第15行if !dtime! gtr !zhi! 有问题
不符合条件的txt文件也会通过
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |