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

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.

Link zu diesem Kommentar

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

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...