Board logo

标题: [文本处理] 批处理怎么每过3分种检测某TXT的大小,大小变化就运行B.BAT? [打印本页]

作者: 649918043    时间: 2014-8-25 14:41     标题: 批处理怎么每过3分种检测某TXT的大小,大小变化就运行B.BAT?

请教怎么每过3分种检测x.TXT文件大小每次检测TXT ,大于上一次,就运行B.BAT
或者每3分种检测 X.txt的行数,只要行数多了就运行B.bat 每天检测只要一多就运行B.bat

麻烦给个例子
作者: apang    时间: 2014-8-25 19:59

举例:
  1. @echo off
  2. for %%a in (a.txt) do set "sz=%%~za"
  3. :Lp
  4. ping>nul -n 180 127.0.1
  5. for %%a in (a.txt) do (
  6.         if "%%~za" NEQ "%sz%" Do Something
  7.         set "sz=%%~za"
  8. )
  9. goto :Lp
复制代码

作者: 649918043    时间: 2014-8-26 10:00

回复 2# apang



解释下好吗??? B.bat   写在哪里
作者: Linuxer    时间: 2014-8-26 10:22

回复 3# 649918043


    b.bat和2楼代码保存的(假设为a.bat)放在同一个目录。
作者: 649918043    时间: 2014-8-26 11:30

麻烦解释下  没明白  例如 我要用计划任务来执行,,或者用到第三方来定时3分运行一次,,

怎么写,,没看懂,。,。 b.bat这个,可以让我任意更换运行的bat名称吗???
作者: Linuxer    时间: 2014-8-26 12:43

本帖最后由 Linuxer 于 2014-8-26 12:45 编辑

回复 5# 649918043


    2楼代码里本身带有自动运行,不用计划任务也可以。不关闭cmd窗口,就会一直隔3分钟检测一次大小。
  1. if "%%~za" NEQ "%sz%" Do Something
复制代码
do something换成你需要的执行内容,名称随意,即:
  1. if "%%~za" NEQ "%sz%" b.bat
复制代码
x.txt
2楼代码.bat
b.bat
三个都放在一个文件夹下。
作者: CrLf    时间: 2014-8-26 16:55

保存为 check_x.txt.bat,双击运行即添加计划任务,每隔三分钟调用一次本 bat
x.bat 的大小将被保存在此 bat 的文件名中...
  1. @echo off
  2. cd /d "%~dp0"
  3. for %%a in (x.TXT) do (
  4.    if %%~za neq %~n0 (
  5.       start "" "你要执行的bat"
  6.       ren "%~0" "%%~za.bat"&&(
  7.           schtasks /delete /tn "check_x.txt"
  8.           schtasks /create /sc minute /mo 20 /tn "check_x.txt" /tr "%%~za.bat"
  9.       )
  10.    )
  11. ) 2>nul
复制代码

作者: 605389735    时间: 2014-8-28 18:05

二楼的sz是不是写死了?
作者: 605389735    时间: 2014-8-28 18:07

回复 2# apang


    sz是不是写死了,a.txt如果有变化的话三分钟后执行B.bat,然后再过三分钟对比的还是之前a.txt的大小???
作者: 523066680    时间: 2014-8-28 18:08

本帖最后由 523066680 于 2014-8-28 18:09 编辑

回复 8# 605389735


    set sz=死了

可能原因是没有开启变量扩展  setlocal enabledelayedexpansion
在for里面要用
!sz! 或者call + %%sz%%
作者: 605389735    时间: 2014-8-28 18:16

回复 10# 523066680

  应该是没开变量延迟
作者: apang    时间: 2014-8-28 18:33

回复 9# 605389735


    我怎么觉得 sz 活得好好的呢?
作者: CrLf    时间: 2014-8-28 18:36

回复 12# apang


    嗯,我也觉得不是冰冻的
作者: apang    时间: 2014-8-28 18:39

回复 10# 523066680


    在不同的 for 里分别赋值 sz,不需要开启变量延迟哈~
作者: 523066680    时间: 2014-8-28 18:40

本帖最后由 523066680 于 2014-8-28 18:44 编辑

回复 14# apang


    有道理。还有个goto :lp来着,不知道楼主为啥说sz 死了




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