Fichier .bat : problème de gestion des variables - Shell/Batch - Programmation
Marsh Posté le 21-08-2005 à 18:11:29
je ne suis pas sûre qu'on puisse mettre des étiquettes dans une commande FOR et de plus il me semble que toutes ses commandes imbriquées ne peuvent pas être lancée dans un seul fichier.
set ligne_fin=%ligne:"GAEL_FACTURES_DETAIL"="EAI_GAEL_FACTURES_DETAIL"% ???
Que cherches tu à faire ?
Marsh Posté le 13-06-2005 à 09:35:35
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