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!

Recommended Posts

Posted

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.

Posted

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!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...