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-Key: 19107

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

Printed on: April 19, 2024 at 04:04 o'clock

Member: Biber
Biber Nov 05, 2005 at 23:24:25 (UTC)
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
Member: Worker734
Worker734 Nov 06, 2005 at 08:11:25 (UTC)
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ß
Member: nullplan001
nullplan001 Nov 06, 2005 at 10:43:16 (UTC)
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.
Member: Worker734
Worker734 Nov 06, 2005 at 12:30:33 (UTC)
Goto Top
Hi,

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

Gruß
Member: Biber
Biber Nov 06, 2005 at 12:46:59 (UTC)
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
Member: Worker734
Worker734 Nov 06, 2005 at 13:41:47 (UTC)
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ß
Member: Worker734
Worker734 Nov 06, 2005 at 16:37:35 (UTC)
Goto Top
Dank Biber geht es.

Danke