Oftmals ist es beim Kunden nötig, ein Programm oder einen Dienst am laufen zu halten. Das auch, nach Systemneustarts oder anderen Ereignissen.
Mit folgendem kleinen Batch-Script kann das umgesetzt werden.
@echo off & setlocal :: Quelle: WiSchOnline.de :: Script zum Starten eines Programms :: Dabei wird vorab geprueft, ob das Programm bereits laeuft. :: Dazu werden die Prozessnamen nach dem Suchnamen durchsucht. :: Ist das der Fall wird kein zweites Mal gestartet :: Parameteruebergabe beim Scriptaufruf: :: 1. Parameter = Suchname (meist reiner Programmname gem. Taskliste) :: 2. Parameter = Programm inkl. Pfad (in Anfuehrungszeichen!) :: Bsp. Standard: einfachstart iexplorer "c:programmeinternet explorerexplorer.exe" :: Prameter von der Kommandozeile holen set "Suchname=%~1" set "Programm=%~2" :: Fehlt ein Parameter dann Ende if not defined Programm goto :ENDE :: Taskliste durchsuchen nach dem zu startenden Programm tasklist |find /i "%Suchname%" >nul :: Verzweigung, je nach Ergebnis if %errorlevel% == 0 ( :: Das Programm/Der Dienst laeuft bereits: Nichts machen ) else ( :: Das Programm/Der Dienst laeuft nicht: Programm starten start "" "%Programm%" ) :ENDE exit
Dieses Script kann man dann per geplantem Task, beim Systemstart oder manuell aufrufen.
Entsprechend der Kommentarzeilen wird mit dem Start geprüft, ob ein entsprechender Dienst läuft
und das angegebene Programm nur gestartet, wenn dies nicht der Fall ist. Damit wird also ein doppelter
Start des entsprechenden Programms verhindert.