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

[系统相关] 实时监控服务的批处理脚本,哪儿出错了? 更正

本帖最后由 polarant 于 2012-1-29 08:48 编辑

我不懂脚本,这个脚本是网上找的,高人帮忙看看。。我试了一下,第一个批处理就不成功,不知道哪儿写的不对。貌似if语句不工作。。。

我的目标: 实时监控服务的状态,如果进程stop,把进程start起来。
  1. sc query spooler | find "STATE" >c:\servstat.txt
  2. set myServStat=-1
  3. for /f "tokens=2,3*" %%a in (c:\servstat.txt) do set myServStat=%%c
  4. [color=Red]if "%myServStat%"=="STOPPED" goto startserv[/color]
  5. [color=Red]goto ss[/color]
  6. :Startserv
  7. net start spooler
  8. echo bye
  9. :ss
  10. echo good bye
复制代码
-----------------

上面的批处理把spooler改成你需要的服务名,或者以%1代替来使用参数,但运行过程会有黑框出现,这可以用VBS来解决。比如上面的批处理保存为c:\chkserv.bat,这个的VBS就行了:
  1. 'VBS脚本,定时运行一下c:\chkserv.bat
  2. batfile="c:\chkserv.bat"
  3. do while true
  4.     set o=createobject("WScript.Shell")
  5.     '下面第二个参数为0即隐藏运行窗口,1显显示运行窗口
  6.     '测试时可先以1为参数看运行情况
  7.     o.run batfile,0
  8.     set o=nothing
  9.    WScript.Sleep 10*60*60 '10分钟后再检测
  10. loop
复制代码

回复 2# find


   
不管怎样,startsv都不会运行,貌似goto不work
如果进程是stopped的,它不去执行startsv

TOP

回复 3# sky02


    是监控服务。。。

TOP

更正过了,是监控服务。。。。好像是if语句不工作。,,啥原因。。。高人啊。。

TOP

回复 12# lxzzr


    试过了,不行

TOP

回复 13# bluewing009


    跪拜!!!!!!!!!!!!!!1高人啊!!!!!!!!!解决了。。。。。

TOP

返回列表