Ich möchte meine Variable res
innerhalb der Schleife aktualisiert werden, aber es wird erst nach der zweiten Iteration aktualisiert.Warum wird eine Umgebungsvariable nicht in einer Schleife aktualisiert?
Hier ist mein Code:
@echo off
set /a res=10
:loop
if %res% gtr 100 (
goto endLoop
) else (
set /a res=res*10
rem Here the 'res' shouldn't it be 100?
echo the result is : %res%
rem Here the first iteration display 10 not 100.
goto loop
)
:endLoop
pause > nul
Gibt es eine Erklärung dafür?
Ja. Diese Frage wird wahrscheinlich 10 Mal am Tag gestellt. Sie müssen [verzögerte Erweiterung] (https://ss64.com/nt/delayedexpansion.html) verwenden. – Squashman
Mögliches Duplikat von [Beispiel einer verzögerten Erweiterung in einer Stapeldatei] (https://stackoverflow.com/questions/10558316/example -von-verzögerter-Expansion-in-Batch-Datei) – Squashman