批处理文件总共停止服务18然后删除文件,然后重新启动服务

问题描述:

我有大约140个需要定期维护的虚拟服务器,它们都运行消息队列,但存储文件需要保持在512MB以下。我需要按顺序停止所有的服务,最后是MSMQ服务,然后转到system32 \ msmg \ storage文件并删除所有* .mq文件,一旦完成,我会希望批处理文件重新启动服务首先是msmq。我还需要添加一些错误消息,所以如果服务不能停止或启动或其已在运行等,下面是我认为它应该是像但不知道,。可能有更好的方法, 该计划是,但所有服务器上的批处理文件,并设置一个sceduled任务来运行批处理文件。 是否有可能生成一封电子邮件说它已成功完成?批处理文件总共停止服务18然后删除文件,然后重新启动服务

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

你是在正确的轨道上。批处理文件当然可以通过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

试试这个:

@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