2011-05-26 114 views
0

我有大約140個需要定期維護的虛擬服務器,它們都運行消息隊列,但存儲文件需要保持在512MB以下。我需要按順序停止所有的服務,最後是MSMQ服務,然後轉到system32 \ msmg \ storage文件並刪除所有* .mq文件,一旦完成,我會希望批處理文件重新啓動服務首先是msmq。我還需要添加一些錯誤消息,所以如果服務不能停止或啓動或其已在運行等,下面是我認爲它應該是像但不知道,。可能有更好的方法, 該計劃是,但所有服務器上的批處理文件,並設置一個sceduled任務來運行批處理文件。 是否有可能生成一封電子郵件說它已成功完成?批處理文件總共停止服務18然後刪除文件,然後重新啓動服務

NET STOP AVLDataService 2>&1|FIND "2182" 
IF errorlevel 1 goto :sub_already_stoped 

回答

0

你是在正確的軌道上。批處理文件當然可以通過NET START/STOP調用所需的順序完成此操作。對於錯誤處理,如果錯誤是非致命的echo消息到文本文件並繼續。如果它是致命的,則使用goto跳轉到文件末尾。在文件末尾,您可以使用BMAIL將錯誤消息發送給自己的文本文件。

+0

感謝您的答覆,這將是最好有兩個批處理文件一個是淨停止和* .mq文件刪除,然後第二個批處理文件來NET START?在第一個批處理文件的底部,我需要添加一些暫停,讓它有時間在啓動msmq服務之前刪除* .mq文件。 – Phil 2011-05-27 09:18:57

+0

因爲一個人依賴於另一個,所以要保持一致。您可以使用'ping'或'timeout'暫停[請參閱此處](http://stackoverflow.com/questions/1672338/how-to-sleep-for-5-seconds-in-windowss-command-prompt-or- DOS)。 – 2011-05-27 13:29:08

+0

我不太清楚我的批處理文件C:\ Temp> NET STOP Message Queuing 2>&1 | FIND「2182」IF錯誤級別1 goto:sub_ already_stopped文件未找到 - IF文件未找到 - ERRORLEVEL文件未找到 - 1文件未找到 - GOTO文件未找到 - :SUB_ALREADY_STOPPED C:\ Temp> ping 1.1.1.1 -n 20 1000 1> NUL我試圖停止消息隊列,但然後我想刪除msmq \ storage文件夾中的文件* .mq這樣的文件del c:\ windows \ system32 \ msmq \ Storage \ *。mq/s它回來了使用中的文件,這使得msmq仍在運行,任何幫助 – Phil 2011-06-09 19:23:29

0

試試這個:

@echo off 
title Service Uninstaller 
color 0A 

set blank= 
set service=blank 

:start 
echo. 
echo. 
echo. 
SET /P service=Enter the name of the service you want to uninstall: 

IF "%service%"=="" (ECHO Nothing is entered 
GoTo :start) 

cls 
echo. 
echo. 
echo. 
echo We will delete the service: %service% 

ping -n 5 -w 1 127.0.0.1>nul 

::net stop %service% 
ping -n 2 -w 1 127.0.0.1>nul 

sc delete %service% 
pause 

:end 
+1

一點解釋將有助於OP – jeremy 2012-10-06 15:03:34

相關問題