[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理怎样循环的检测应用程序状态,并重启?

请教大家:我想写一个批处理,循环的检测应用程序是否飞掉,记录程序名,飞掉时间,并自动重启它,现在有几个问题向大家求助:
1、为什么程序不会遍历AppList.ini,也就是现在的程序只会检测 FoxMail.exe,而不会检测QQ.exe的状态,并重启。
2、怎么替换现在命令中的 常量  “Foxmail.exe” 字符,替换成 %%i 才是正确的吧。
3、现在程序在异常时,只记录了时间,有没有办法纪录其它的关键信息(内存,CPU,,,)
  1. @echo off
  2. :1
  3. tasklist /nh>Tasklist.txt
  4. for /f "delims=  tokens=1" %%i in (AppList.ini) do (
  5. find /i "%%i" Tasklist.txt
  6. if ERRORLEVEL 1 (goto _T) else (goto _E)
  7. :_T
  8. echo foxmail.exe %date:~0,11%%time:~0,5%>>AppTime.txt
  9. start /min foxmail.exe.lnk
  10. :_E
  11. echo >nul
  12. )
  13. ping 127.1 -n 5 >nul 2>nul
  14. goto 1
  15. ::AppList.ini 样式:foxmail.exe 换行 qq.exe
复制代码

不要在for循环内部定义标签

TOP

@HAT 感谢你的回复,我对CMD语法是一点都不知道,昨天被发贴的验证码都折腾了大半天,我尝试把标签去掉了,代码在执行时没有成功,请问这代码需要怎么编写。
@echo off
:1
tasklist /nh>Tasklist.txt
for /f "delims=  tokens=1" %%i in (AppList.ini) do (       
        find /i "%%i" Tasklist.txt
        if ERRORLEVEL 1
        (
                echo foxmail.exe %date:~0,11%%time:~0,5%>>AppTime.txt               
                start /min foxmail.exe.lnk
        )
)
ping 127.1 -n 5 >nul 2>nul
goto 1
::AppList.ini 样式:foxmail.exe 换行 qq.exe

TOP

回复 3# sbiawrgw


“没有成功”的具体表现是什么?

TOP

飞掉……是指?这应该和“跑飞”不是一个概念吧…………

TOP

本帖最后由 wc726842270 于 2011-10-28 03:08 编辑

其实我也很想说“飞掉”是什么意思?
有点不太明白第2点,
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

感谢大家的回复,“飞掉”是我们公司对程序异常关闭掉的一个说法,这里不上心写上去了。在服务器上程序经常异常关闭掉,唉!结果大家知道的。 。。。
另外我在第二次回复时,执行这个CMD文件,窗口一闪而过,不知道是不是语法错误了。请教大家。

TOP

返回列表