User-Root Geschrieben 14. August 2009 Teilen Geschrieben 14. August 2009 Hallo Gemeinde, ich bastle gerade an einer For schleife und da fiel mir auf das es da etwas seltsam zugeht. Während: set x=5 If %x%==5 set x=10 Echo %x% brav eine 10 auswirft, bringt dieser Code: set x=5 for /L %%i in (1 1 1) do ( If %x%==5 set x=10 echo %x% ) eine 5. Kann mir da jemand auf die Sprünge helfen was da in der For-Schleife schief läuft? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 20. August 2009 Teilen Geschrieben 20. August 2009 Hallo User\Root, wenn ich mich nicht täusche musst Du eine Kommandozeile mit der Option /V öffnen oder über SETLOCAL ENABLEDELAYEDEXPANSION die verzögerte Erweiterung aktivieren damit du mit ! auf die Variablen zugreifen kannst (innerhalb einer Schleife um diese auszuwerten und anzuzeigen). Dann solltest Du mit @echo off setlocal ENABLEDELAYEDEXPANSION set x=5 echo x vor Schleife - Prozentzeichen - ist %x% echo x vor Schleife - Ausrufezeichen - ist !x! echo. for /L %%i in (1 1 1) do ( If !x!==5 ( set x=10 echo x in Schleife - Prozentzeichen - ist %x% echo x in Schleife - Ausrufezeichen - ist !x! ) ) echo. echo x nach Schleife - Prozentzeichen - ist %x% echo x nach Schleife - Ausrufezeichen - ist !x! endlocal [/PHP] Das Ergebnis erzielen welches Du haben möchtest. (Hab die Klammern korrekt gesetzt und ein paar ausgaben zum Verständis hinzugefügt) Am besten kopierst Du die Zeilen in eine *.bat Datei und führst diese aus, da der FOR-Befehl leicht anders funktioniert wenn man in direkt auf der Kommandozeile eingibt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
User-Root Geschrieben 20. August 2009 Autor Teilen Geschrieben 20. August 2009 Danke dir. Das löst mein Problem Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.