标题: [文本处理] 批处理怎么每过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
举例:- @echo off
- for %%a in (a.txt) do set "sz=%%~za"
-
- :Lp
- ping>nul -n 180 127.0.1
- for %%a in (a.txt) do (
- if "%%~za" NEQ "%sz%" Do Something
- set "sz=%%~za"
- )
- 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分钟检测一次大小。- if "%%~za" NEQ "%sz%" Do Something
复制代码
do something换成你需要的执行内容,名称随意,即:- 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 的文件名中...- @echo off
- cd /d "%~dp0"
- for %%a in (x.TXT) do (
- if %%~za neq %~n0 (
- start "" "你要执行的bat"
- ren "%~0" "%%~za.bat"&&(
- schtasks /delete /tn "check_x.txt"
- schtasks /create /sc minute /mo 20 /tn "check_x.txt" /tr "%%~za.bat"
- )
- )
- ) 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 |