2014-09-22 26 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