Dans un batch, je souhaite récupérer une ligne de fichier dans une variable, la ligne de fichier contenant elle-même des variables.
Le but étant de remplacer une chaine de caractère par une autre dans cette ligne.
Voici le script en question :
FOR /f %%a in (c:\Temp\FOLDER_LIST.txt) DO (
FOR /f %%r in ('dir "c:\Temp_batch\*.bat" /s /b') DO (
FOR /f "delims=" %%c in ('type "%%r" ^| findstr "%%a"') DO (
call :commande "%%c" "%%a"
:commande
set ligne= %1
set chaine=%2
set ligne_fin=%ligne:"GAEL_FACTURES_DETAIL"="EAI_GAEL_FACTURES_DETAIL"%
)
)
)
Ma variable c est du type : "%PM_STARTWF% -f "GAEL_FACTURES_REF" -wait ..."
Le 1er problème est que la variable %ligne% ne reprend pas les éventuelles variables contenues dans %1 (ligne de fichier) :
ligne = "-f "GAEL_FACTURES_REF" -wait ..."
Le 2ème problème est lorsque je veux remplacer ma chaine de caractère définie dans %chaine% par une nouvelle chaine dans la ligne de fichier %ligne%. Pour cela, je crée une 3ème variable %ligne_fin%. Malheureusement, lorsque j'essaie de substituer %chaine% à l'intérieur, ça ne marche pas. La syntaxe que j'utilisais était la suivante :
set ligne_fin=%ligne:"%chaine%"="EAI_%chaine%"%
Quelqu'un pourrait-il m'aider à résoudre ces 2 problèmes SVP ?
M'ci