Zurzeit wird der Status von 2 Diensten ermittelt. Erst wenn beide Dienste laufen wird eine Erfolgsmail verschickt. Läuft nur einer von beiden Diensten geschieht nichts.
Die Syntax:
Code:
echo Der SQL-Server wurde an folgendem Tag zur folgenden Zeit auf folgendem Computer neugestartet: > "C:\scripts\SQL-restart\mail.txt"
echo Datum: %date% >> "C:\scripts\SQL-restart\mail.txt"
echo Zeit: %time% >> "C:\scripts\SQL-restart\mail.txt"
echo Computer: %computername% >> "C:\scripts\SQL-restart\mail.txt"
echo neugestartete Dienste: >> "C:\scripts\SQL-restart\mail.txt"
pslist.exe /accepteula W3SQLMGR | findstr /B /I W3SQLMGR >NUL: 2>&1 >>"C:\scripts\SQL-restart\mail.txt"
pslist.exe /accepteula NTBTRV | findstr /B /I NTBTRV >NUL: 2>&1 >>"C:\scripts\SQL-restart\mail.txt"
findstr /C:"W3SQLMGR" "C:\scripts\SQL-restart\mail.txt" && goto find-str
goto :EOF
:find-str
findstr /C:"NTBTRV" "C:\scripts\SQL-restart\mail.txt" && goto blat-mail
goto :EOF
:blat-mail
cd /d "C:\scripts\SQL-restart"
Blat -install sql-server1.domain.local sysadmin@domain.de
Blat "mail.txt" ^
-to administrator@domain.de -server mail.domain.de -u administrator@domain.de -pw password ^
-debug -timestamp -log blatSMTPlog.txt ^
Ich möchte nun, dass beim Ermitteln nur eines von beiden Diensten eine entsprechende Mail versendet wird, die eine Fehlermeldung enthält.
Kann ich die bislang verwendete Syntax für findstr mit if/else kombinieren bzw. gibt es einen anderen Weg oder muss ich für diesen Vorsatz bei Null beginnen?
Danke für jede konstruktive Hilfe vorab.