2014-09-22 28 views
1

我创建了一个WinService并在计划任务上设置了它的启动和停止。但是,服务启动约20秒后,每天都会自动停止,即使在计划任务I中,如果启动失败,也没有设置重新启动。因此,我必须每天早上手动重新启动服务。现在,我要编写能够执行以下任务的批处理文件:如何使用批处理文件检查WinService状态?

  1. 检查,其中WINSERVICE运行
  2. 如果不是1),启动服务
  3. 写1记录)和2)。

欣赏您是否可以为其提供步行过程。

+0

是winservise您的服务名称? – npocmaka 2014-09-22 14:40:37

回答

0
@echo off 

set "sevice_name=WinService" 

sc query "%sevice_name%" | find /i "running" || (
    echo service "%sevice_name%" is stopped 
    sc start "%sevice_name%" 
    goto :end 

) >> log.txt 

:end 
echo service "%sevice_name%" is running >> log.txt 
+0

感谢您的回复。你能否验证过程(w/questions)如下:1)按照你的建议创建一个带有内容的.batch文件,其中service_name = myWinServiceName; 2)for log.txt - 它看起来像:C; \ MyTemp \ log.txt; 3)如何运行.bat? - 把它放在计划任务?再次感谢 – 2014-09-22 15:26:07

+0

@ShaningYu - 您可以指定日志文件的任何位置。如果它更长,可以用引号括起来。您还可以添加一个额外的“echo%date%>> log.txt”以获得更多的清晰度。您可以检查蝙蝠,但最好在运行两次后打开并关闭检查服务。如果您计划蝙蝠,则还可以添加超时以确保服务已经关闭(如果这样做的话)。 – npocmaka 2014-09-22 15:55:31

+0

谢谢。将尝试看看结果。 – 2014-09-22 16:25:37