我不是一个脚本专家,也不是现实生活中的一个。 我试图在Windows 2003服务器上执行以下操作(是的Win2K3..dont ask..please)
我需要检查D:\ mailqueue中的文件数量 如果文件数为零则不执行任何操作。
如果文件数超过1,则重新启动Windows SMTP服务。 重新启动完成后,再次检查同一文件夹以确保文件计数为零。 如果没有,则再次执行SMTP restart命令。 继续重启直到队列为零。
帮助!
我想我得到了第一部分,文件数量(是的,可能看似微不足道,但对我来说是一个巨大的成就)......
@echo off
setlocal
set /a count=0
for /F %%N in ('dir "C:\mailqueue" ^| find "File(s)"') do set count=%%N
echo count=%count%
endlocal
现在我需要知道如何在count中取这个值,如果它大于零,那么执行一个windows服务的重启。重新启动后,我需要再次计数,看看它是否为零。如果它不再那么重新启动并继续这样做直到计数为零。
muchos gracias
答案 0 :(得分:0)
这应该适合你 -
:do_it_again
for /f %%i in ('dir c:\mailqueue ^| findstr /i /c:"file(s)"') do set count=%%i
if "count" neq "1" (
net stop smtpsvc & net start smtpsvc
)
goto :do_it_again
干杯,G