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?
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.
User-Root Geschrieben 20. August 2009 Autor Geschrieben 20. August 2009 Danke dir. Das löst mein Problem
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden