Hallo,
ich hab ein kleines Problem - für Hardcore-Batcher sicherlich nicht
Ich habe folgende Problemstellung:
In einer Datei tempdat.txt stehen Dienstnamen und Dienststati drin - das sieht dann so aus:
[Stopped] AppMgmt
[Stopped] BITS
[Stopped] wuauserv
Für alle Dienste in der Datei tempdat.txt führe ich dann folgenden Befehl aus:
for /F "tokens=2" %%i in (%TempDat%) do (
sc start %%i
)
OK - funktioniert soweit.
Dann möchte ich aber nacheinander überprüfen, ob die Dienste auch laufen...dazu hab ich mir das überlegt:
for /F "tokens=2" %%i in (%TempDat%) do (
%sc% \\%computername% query %%i > tempdat2.txt
-> Damit steht jetzt mal der u.g. Ausdruck in der tempdat2.txt drin:
SERVICE_NAME: AppMgmt
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN))
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Anschließend möchte ich nun prüfen, ob der Status = Running ist, eine Meldung ins Eventlog (mit logevent.exe) schreiben und dann die for-Schleife ein zweites Mal durchlaufen für den nächsten Dienstnamen.
Das hier hab ich mal angefangen...aber es tut irgendwie nicht....irgendwo fehlt noch was...aber was????
for /F "tokens=2" %%i in (%TempDat%) do (
%sc% \\%computername% query %%i > %tempdat2%
for /F "skip=3 tokens=4" %%a in (%tempdat2%) do if not defined status set status=%%a
if /I "%STATUS%" EQU "Running" (call %Logevent%) else (call %logevent2%)
)
Weiß da jemand weiter???
Tausend Dank.