Pourquoi cela ne fonctionne-t-il pas?Windows Batch File Math Weirdness
@echo off
for /l %%i in (0, 1, 100) do (
for /l %%j in (0, 1, 10) do (
set /a curr=%%i*10 + %%j
echo %curr%
)
echo "-----------------------------"
)
C'est la sortie que je reçois de ceci:
1010
1010
1010
1010
1010
1010
1010
1010
1010
1010
1010
"----------------------------"
1010
1010
1010
1010
1010
1010
1010
1010
...
Il semble que ce précalcule les mathématiques avant d'exécuter, de sorte que quand il n'exécute enfin, %curr%
est déjà à 1010. Comment puis-je le garder de faire ça? Je suis en train d'obtenir la sortie comme ceci:
0
1
2
3
4
5
6
7
8
9
10
"----------------------------"
11
12
...
Merci à l'avance
Réponse de Johannes Rössel (pour ceux qui pourraient chercher plus tard):
@echo off
setlocal enabledelayedexpansion enableextensions
for /l %%i in (0, 1, 100) do (
for /l %%j in (0, 1, 10) do (
set /a curr=%%i*10+%%j
echo !curr!
)
echo "-----------------------------"
)
k, fixé que dans ma question (dans mon fichier batch réel, j'ai eu le '/ a' là-dedans correctement) –