Jump to content

findstr mit if-/else-Bedingung verknüpfen bzw. alternatives Konzept verwenden


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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:

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.

Link zu diesem Kommentar

Was ist der Zweck des ganzen? Ist dafür ein Monitoringsystem nicht geeigneter?

 

Wenn es unbedingt ein Script sein muss und Powershell sein kann:

$service1 = (Get-Service W3SQLMGR).Status
$service2 = (Get-Service NTBTRV).Status

if( ($service1 -eq 'running) -and ($service2 -eq 'running') ){
  #Funktion für Erfolg aufrufen
}elseif(($service1 -eq 'running) -or ($service2 -eq 'running') ){
  #Funktion mit Fehler, dass nur ein Dienst läuft
}else{
  #Funktion mit Fehler, dass kein Dienst läuft
}

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...