Veröffentlicht 14. August 200916 j 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?
20. August 200916 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.