User-Root Geschrieben 14. August 2009 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
Maulwurf_der_Schlaue Geschrieben 20. August 2009 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
User-Root Geschrieben 20. August 2009 Autor Geschrieben 20. August 2009 Danke dir. Das löst mein Problem Zitieren
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.