XP Pro: Prozess über Batch starten

kingofnowhere

Cadet 4th Year
Registriert
Aug. 2007
Beiträge
106
Hi Leute,

ich muss alle 4 Minuten eine Serverapplikation neustarten. Dazu habe ich einen geplanten Task, der eine Batch aufruft, die zuerst 2 Prozesse beendet, 5 sek wartet und anschließend den Serverprozess neustartet.
Problem: Wenn ich den Serverprozess über die Batch starte, kommt nur ein Fehler dass die Konfiguration nicht geladen werden konnte, starte ich die Serverapplikation über Doppelklick auf die .exe geht es. Hat jemand eine Idee warum?

Der Code der Batch:

Code:
kill /f VisualEIB.exe
kill /f EIBServr.exe
ping 127.0.0.1
cd ..
cd Program Files
cd VisualEIB
start VisualEIB.exe

Das pingen ist nur um 5 Sekunden verzögerung zu erreichen, da der Datenbankprozess imemr so 2-3 Sekunden braucht bis er ganz weg ist. Das Kill Kommando ist eine seperate Exe.

Grüße,
Manuel

edit:

also das problem tritt auch auf, wenn die .bat direkt im verzeichniss des programms ist. Die Konfiguration ist eine .ini Datei im Ordner der .exe , sie wird anscheinend nicht geladen, wenn ich das Programm über batch starte...warum bloß?
 
Zuletzt bearbeitet: (Kleiner Nachtrag)
Probiers doch mal so..

kill /f VisualEIB.exe
kill /f EIBServr.exe
ping 127.0.0.1
call %programfiles%\VisualEIB\VisualEIB.exe


Anstatt extra ne "Kill exe" zu starten könntest du auch so machen

taskkill /im VisualEIB.exe
taskkill /im EIBservr.exe

Ps: Insofernd as die EXE sind die du stoppen willst...

Kannst du die Applikation nicht als Dienstlaufen lassen und die stoppen und starten?
 
Falls dich interessiert wieso:
cd ..
cd Program Files
cd VisualEIB
start VisualEIB.exe
heißt, die Batch muss einen Ordner tief in C oder direkt in C Root sein. weil nur dann kommt er mit cd.. einen Ordner zurück (mit cd\ wärs fast gegangen, wenn die Batch auf c liegt) und mit den anderen in den jeweiligen Ordner.
Außerdem ist der Befehl start nur notwendig, wenn du was in einem eigenen Fenster ausführen willst.

Direkt der Dateiname startet ein Programm.
"net start Dateiname" startet einen Dienst.
 
liegt im Verhalten der CMD.

Datei- oder Verzeichnisnamen müssen in einer Batch per "" umschlossen werden, wenn sie ein Leerzeichen enthalten.

Theopraktisch geht es also auch in der Batch mit:

Code:
C:\Progra~1\VisualEIB\VisualEIB.exe

weil man damit die 8.3 Regel(DOS-Namen) benutzt. Nicht jede Exe lässt sich allerdings per CMD aus dem Root Verzeichnis starten, also muss man entweder die CD Variante benutzen, oder man nimmt PushD.

Code:
Pushd "%ProgramFiles%\VisualEIB"
VisualEIB.exe
 
Zuletzt bearbeitet:
Zurück
Oben