4241 shaares
575 liens privés
575 liens privés
Et oui, le fameux problème de "L'expansion retardée de variables d'environnement"
Au lieu de ça :
dir /B /S %RepToRead% > %FileName%
for /f "tokens=*" %%a in ('type %FileName%') do (
set c=%%a
echo %c%
echo %%a
)
On doit plutôt mettre ça :
@echo off
setlocal enableDelayedExpansion
dir /B /S %RepToRead% > %FileName%
for /f "tokens=*" %%a in ('type %FileName%') do (
set c=%%a
echo !c!
echo %%a
)
Et ça marche très bien.
Edit 2015-05-05 : Oui, bien appliquer cela à la lettre (surtout le coup des %a% --> !a! sur les variables initialisées dans la boucle). Je viens à nouveau de perdre de nombreuses minutes pour cette astuce.
cf également https://stackoverflow.com/questions/12518242/batch-script-for-loop-wont-set-variable