Jump to content

Verschachtelte For-Schleife


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

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

Hallo,

 

ich hab jetzt folgendes gemacht - tut auch soweit, aber vielleicht kann mir jemand sagen, wie ich %status% wieder leer bekomme - also ein set status=

 

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

echo %status%)

)

 

An welcher Stelle muß ich nun das set status= setzen??

 

Danke

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...