worker734
Goto Top

For /f

Hi,

wie kann ich die schleife abfangen wenn die Liste abgearbeitet wurde?
Damit ich noch eine Meldung vor dem beenden ausgeben kann.

bei meinem Versuch komm er nicht mehr dazu.

For /F "tokens=1,2* " %%i in (%list%) do call :copy %%i %%j
goto :eof


:copy
if "%1"=="" goto :exit

Content-ID: 19107

Url: https://administrator.de/contentid/19107

Ausgedruckt am: 24.11.2024 um 00:11 Uhr

Biber
Biber 06.11.2005 um 00:24:25 Uhr
Goto Top
Moin Worker734,

bin nicht ganz sicher, ob ich Deine Frage richtig verstehe...
..
For /F "tokens=1,2* " %%i in (%list%) do call :copy %%i %%j
echo Hier ist die Liste abgearbeitet und hier hast du alle Zeit der Welt zum Meldung ausgeben.
goto :eof
..
und die Prüfung
if "%1"=="" ....kann IMHO nie greifen, da niemals ein leeres (erstes) Listenelement übergeben werden kann.
Kann zwar sein, dass der zweite Parameter (%%j) leer ist, aber der erste nie.
Wenn ich Deine Frage nicht verstanden habe, poste bitte noch mal.

Biber
Worker734
Worker734 06.11.2005 um 09:11:25 Uhr
Goto Top
Hi Biber,

die schleife arbeitet die Liste ab und dabei möchte ich keine Meldung erzeugen, aber
wenn die Schleife die Liste abgearbeitet hat und somit am Ende der Liste angelangt ist
möchte sozusagen eine Meldung zum Abschluss abgeben.

Danke und Gruß
nullplan001
nullplan001 06.11.2005 um 11:43:16 Uhr
Goto Top
Kann sein, dass ich dich nicht 100% verstanden habe, oder aber du siehst den Wald vor Lauter Bäumen nicht. Schreib doch einfach:
<pre>:eof
echo Fattig!!</pre>
Also, lass ihn die Meldung doch beim Aussprung angeben. Ich hoffe zumindest, du meintest das.
Worker734
Worker734 06.11.2005 um 13:30:33 Uhr
Goto Top
Hi,

was an meiner Erklärung ist denn nicht verständlich?

Gruß
Biber
Biber 06.11.2005 um 13:46:59 Uhr
Goto Top
Moin Worker734,
was an meiner Erklärung ist denn nicht verständlich?
Das hier:
wie kann ich die schleife abfangen wenn die Liste abgearbeitet wurde?
Ja, was denn nun? "Schleife abfangen".. da dachte ich zuerst, du meintest etwas wie "Exit For" aus anderen Skriptsprachen. Vorzeitig aus der FOR..IN..DO-Schleife aussteigen. Aber "wenn die Liste abgearbeitet wurde" spricht gegen diese Interpretation.
Deshalb die Rückfragen.
Grüße Biber
Worker734
Worker734 06.11.2005 um 14:41:47 Uhr
Goto Top
Hi,

Ich habe eine Liste z.B.
PC1
PC2
PC3

diese werden ausgelesen und mit call :copy %%i %%j
einer Subroutine übergeben.

Wenn die For...Schleife nun die Liste durchlaufen ist und sozusagen den
letzten PC, in diesem Fall PC3, ausgelesen hat, soll nach der Subroutine das
Script nicht sofort beendet werden sondern z.B. eine Meldung anzeigen
Letzter Eintrag in der Liste wurde erreicht!

Besser?

Danke und Gruß
Worker734
Worker734 06.11.2005 um 17:37:35 Uhr
Goto Top
Dank Biber geht es.

Danke