Please let me know what i am doing wrong in my code. I am trying to check a set of Services starting with specific set of name. And triggering an email if service is in stop state. I have made a loop where in it will traverse. But i am not able to end that loop.
setlocal :loop @for /f "tokens=1*" %%a in ('sc queryex state^=inactive ^| findstr /r /c:"DISPLAY_NAME:.*ASP"') do net start "%%b" && goto :mail :mail set Port=25 set SSL=False set From="[email protected]" set To="[email protected]" set Subject="Subject line" set Body="Email Body in one line" set SMTPServer="smtp.gmail.com" set User="[email protected]" set Pass="1234567" if "%~7" NEQ "" ( set From="%~1" set To="%~2" set Subject="%~3" set Body="%~4" set SMTPServer="%~5" set User="%~6" set Pass="%~7" set fileattach="%~8" ) set "vbsfile=%temp%\email-bat.vbs" del "%vbsfile%" 2>nul set cdoSchema=http://schemas.microsoft.com/cdo/configuration echo >>"%vbsfile%" Set objArgs = WScript.Arguments echo >>"%vbsfile%" Set objEmail = CreateObject("CDO.Message") echo >>"%vbsfile%" objEmail.From = %From% echo >>"%vbsfile%" objEmail.To = %To% echo >>"%vbsfile%" objEmail.Subject = %Subject% echo >>"%vbsfile%" objEmail.Textbody = %body% if exist %fileattach% echo >>"%vbsfile%" objEmail.AddAttachment %fileattach% echo >>"%vbsfile%" with objEmail.Configuration.Fields echo >>"%vbsfile%" .Item ("%cdoSchema%/sendusing") = 2 ' not local, smtp echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpserver") = %SMTPServer% echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpserverport") = %port% echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpauthenticate") = 1 ' cdobasic echo >>"%vbsfile%" .Item ("%cdoSchema%/sendusername") = %user% echo >>"%vbsfile%" .Item ("%cdoSchema%/sendpassword") = %pass% echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpusessl") = %SSL% echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpconnectiontimeout") = 30 echo >>"%vbsfile%" .Update echo >>"%vbsfile%" end with echo >>"%vbsfile%" objEmail.Send cscript.exe /nologo "%vbsfile%" echo email sent (if variables were correct) del "%vbsfile%" 2>nul goto :loop