Batch : set d'une variable dans un for
ArrachageDeTif
-
ArrachageDeTif -
ArrachageDeTif -
Bonjour,
Je m'arrache les cheveux ! Pourquoi ma variable MYVAR n'est-elle pas mise à jour ?
Avec un fichier texte list.txt qui contient plusieurs lignes X:Y où X est le numéro de ligne
et Y une string, j'execute ce batch
set MYVAR=nada
echo "==========================" > out.txt 2>&1
for /f "tokens=1,2 delims=:" %%i in (list.txt) do (
@echo "***************************************************"
@echo "%%i)%%j"
@echo "***************************************************"
echo 1%MYVAR% >> out.txt 2>&1
set MYVAR="-InputNalusReader.url"
echo 2%MYVAR% >> out.txt 2>&1
)
Mon output out.txt ressemble à ça:
"=========================="
1nada
2nada
3nada
tout se passe comme si MYVAR n'était pas mis à jour (je précise que c'est ici une
version simplifiée avec une mise à jour qui ne dépend pas de la ligne courante dans
list.txt, j'en suis arrivée là après simplification car ça ne marchait déjà pas avec une
syntaxe plus compliquée)
Je m'arrache les cheveux ! Pourquoi ma variable MYVAR n'est-elle pas mise à jour ?
Avec un fichier texte list.txt qui contient plusieurs lignes X:Y où X est le numéro de ligne
et Y une string, j'execute ce batch
set MYVAR=nada
echo "==========================" > out.txt 2>&1
for /f "tokens=1,2 delims=:" %%i in (list.txt) do (
@echo "***************************************************"
@echo "%%i)%%j"
@echo "***************************************************"
echo 1%MYVAR% >> out.txt 2>&1
set MYVAR="-InputNalusReader.url"
echo 2%MYVAR% >> out.txt 2>&1
)
Mon output out.txt ressemble à ça:
"=========================="
1nada
2nada
3nada
tout se passe comme si MYVAR n'était pas mis à jour (je précise que c'est ici une
version simplifiée avec une mise à jour qui ne dépend pas de la ligne courante dans
list.txt, j'en suis arrivée là après simplification car ça ne marchait déjà pas avec une
syntaxe plus compliquée)
A voir également:
- Batch : set d'une variable dans un for
- Fichier batch - Guide
- Batch converter - Télécharger - Photo & Graphisme
- Batch renommer une partie du nom de plusieurs fichiers ✓ - Forum Autoit / batch
- Color batch - Forum Autoit / batch
- Batch picture resizer - Télécharger - Divers Photo & Graphisme
3 réponses
hello
placer
au début du script et utiliser !variable! à la place de %variable% dans la boucle for
placer
setlocal enableDelayedExpansion
au début du script et utiliser !variable! à la place de %variable% dans la boucle for
echo "==========================" > out.txt 2>&1
for /f "tokens=1,2 delims=:" %%i in (list_720p50.txt) do (
set A=%%i
set B=%%j
@echo "***************************************************" >> out.txt 2>&1
@echo "%%i)%%j" >> out.txt 2>&1
@echo "***************************************************" >> out.txt 2>&1
@echo "%A%%B%" >> out.txt 2>&1
)
me donne
"=========================="
"***************************************************"
"1)ligne1"
"***************************************************"
""
"***************************************************"
"2)ligne2"
"***************************************************"
""
for /f "tokens=1,2 delims=:" %%i in (list_720p50.txt) do (
set A=%%i
set B=%%j
@echo "***************************************************" >> out.txt 2>&1
@echo "%%i)%%j" >> out.txt 2>&1
@echo "***************************************************" >> out.txt 2>&1
@echo "%A%%B%" >> out.txt 2>&1
)
me donne
"=========================="
"***************************************************"
"1)ligne1"
"***************************************************"
""
"***************************************************"
"2)ligne2"
"***************************************************"
""