Batch : set d'une variable dans un for

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)

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    placer
    setlocal enableDelayedExpansion

    au début du script et utiliser !variable! à la place de %variable% dans la boucle for
    1
  2. ArrachageDeTif
     
    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"
    "***************************************************"
    ""
    0