BATCH : condition IF !VAR! dans une FOR loop
Résolu
Bonjour,
Question somme toute toute bête mais ne je trouve pas de réponse.
J'ai une boucle FOR sur les lignes d'un fichier list.txt, sur chacune
de ces lignes (formatée en X:Y) je récupère X et Y, puis je veux faire un
IF sur X. J'utilise donc !X! au lieu de %X%
for /f "tokens=1,2 delims=:" %%i in (list.txt) do (
@set X=%%i
@set Y=%%j
if !X!==untruc
...
else
...
)
Mais il n'aime pas :-(
Merci.
Question somme toute toute bête mais ne je trouve pas de réponse.
J'ai une boucle FOR sur les lignes d'un fichier list.txt, sur chacune
de ces lignes (formatée en X:Y) je récupère X et Y, puis je veux faire un
IF sur X. J'utilise donc !X! au lieu de %X%
for /f "tokens=1,2 delims=:" %%i in (list.txt) do (
@set X=%%i
@set Y=%%j
if !X!==untruc
...
else
...
)
Mais il n'aime pas :-(
Merci.
1 réponse
-
A force de bidouille j'ai trouvé comment faire, si ça peut être utile à qqu'un :
J'ai cassé la boucle FOR à coup de CALL et de GOTO
for /f "tokens=1,2 delims=:" %%i in (list.txt) do ( call :ETIQUETTE "%%i" "%%j"" )
goto :FIN_ETIQUETTE
@set VAR1_TMP=%1
@set VAR1=%VAR1_TMP:~1,-1%
@set VAR2_TMP=%2
@set VAR2=%VAR2_TMP:~1,-1%
if /i %VAR1% EQU untruc (
...
)
goto :eof
:FIN_ETIQUETTE
voilà ! Remarque : je suis passée par une variable intermédiaire VAR1_TMP avant VAR1 pour pouvoir retirer les guillemets " de ma string.