本帖最后由 polarant 于 2012-1-29 08:48 编辑
我不懂脚本,这个脚本是网上找的,高人帮忙看看。。我试了一下,第一个批处理就不成功,不知道哪儿写的不对。貌似if语句不工作。。。
我的目标: 实时监控服务的状态,如果进程stop,把进程start起来。- sc query spooler | find "STATE" >c:\servstat.txt
- set myServStat=-1
- for /f "tokens=2,3*" %%a in (c:\servstat.txt) do set myServStat=%%c
- [color=Red]if "%myServStat%"=="STOPPED" goto startserv[/color]
- [color=Red]goto ss[/color]
-
- :Startserv
- net start spooler
- echo bye
- :ss
- echo good bye
复制代码 -----------------
上面的批处理把spooler改成你需要的服务名,或者以%1代替来使用参数,但运行过程会有黑框出现,这可以用VBS来解决。比如上面的批处理保存为c:\chkserv.bat,这个的VBS就行了:- 'VBS脚本,定时运行一下c:\chkserv.bat
- batfile="c:\chkserv.bat"
- do while true
- set o=createobject("WScript.Shell")
- '下面第二个参数为0即隐藏运行窗口,1显显示运行窗口
- '测试时可先以1为参数看运行情况
- o.run batfile,0
- set o=nothing
- WScript.Sleep 10*60*60 '10分钟后再检测
- loop
复制代码
|