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

[其他] [已解决]如何延时调用外部批处理文件,并比较日志?

[复制链接]
发表于 2012-3-19 16:30:50 | 显示全部楼层 |阅读模式
本帖最后由 zfen12x 于 2012-3-20 14:31 编辑

求助,想写一个批处理文件,需要如下功能:
1.该批处理文件会调用另一个批处理文件,并获取被调用文件的log。
2.每隔一定时间(例如五分钟)比较两次log文件的大小是否有变化。如没有变化,kill掉被调用的批处理文件,并重新调用。

现在有如下几个问题:
1,延迟如何做?也就是linux下的sleep;在批处理下应该如何做?
2,bash下的kill在dos环境下如何处理?
3,第三个问题有点脸红了。。。比较两个log文件如何比较。。。

提前表示感谢!

由于小弟确实是新人,今天上午才接触批处理和dos环境,并且,项目要求较急。无奈之下做了伸手党。还望各位见谅!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-3-19 16:39:32 | 显示全部楼层
我写的第三方延时程序,运行后延时1秒
http://www.bathome.net/attachmen ... ms5ZjRHb1RUVmtsOC9j
 楼主| 发表于 2012-3-19 16:50:38 | 显示全部楼层
谢谢楼上,如此看来批处理没有提供现成的延时app呀。

还有一个问题,批处理的循环是如何做的?
例如C语言中的while或者for。如果我利用楼上的那个binary,那么我应该写一个600次循环才可以。
但是批处理中的for。。好像和perl中的foreach很类似。但是和C中的for又不一样。。。谢谢了!
发表于 2012-3-19 16:54:36 | 显示全部楼层
本帖最后由 CrLf 于 2012-3-19 16:55 编辑

任何命令都可以是延时命令...
  1. ping /t 300 127.1
  2. rem 延时 300 秒,ping 是比较常用的延时方案,相对低耗而准确,但不适合长时间延时
  3. ::也可以利用外部命令自带的延时功能,长时间延时的情况下较为准确
  4. wmic os get name /every:60 /repeat:5 >nul
  5. rem 延时 60 秒,循环 5 次
  6. typeperf "\objects\events" -sc 300 >nul
  7. rem 延时 300 秒
复制代码
  1. @echo off>>new.log
  2. %1 start /b "test" test.bat
  3. (
  4.    copy /y new.log old.log >nul
  5.    fc 1.log 2.log&&taskkill /f /t /fi "windowtitle eq test"&&start /b "test" test.bat
  6.    wmic os get name /every:60 /repeat:5
  7.    %0 :
  8. )>nul
  9. rem 如果是以管理员身份运行,taskkill 那句的条件应该写成 "windowtitle eq 管理员: test"
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-3-19 16:57:22 | 显示全部楼层
有用 谢谢ls!
发表于 2012-3-19 18:24:33 | 显示全部楼层
 楼主| 发表于 2012-3-20 09:00:33 | 显示全部楼层
谢谢楼上,还想请教大家一个问题,
for循环中的skip参数可以忽略从前往后数的行数(当for读取文件的时候),那么我的问题是,如果我想从后往前读呢?
因为我想没隔一段时间(例如五分钟)读取最新的log信息,也就是最后几行是否出现某关键字,当关键字存在,我就goto,跳出循环。如果从前往后一直读,也是可以实现的,但是当log文件很大时,效率就成问题了。

谢谢大家。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 21:12 , Processed in 0.013932 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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