Bonjour,

Le code ci-dessous dont le but est de remplacer un paramètre "[param1]"par un mot "LAUNCH BR" produit un résultat que je ne comprends pas si la ligne démarre par un espace ou une tabulation:

Si la ligne commence par un espace : la ligne suivante est écrite "[param1]=LAUNCH BR"
En cas de tabulation : la ligne suivante est écrite "Commande ECHO d‚sactiv‚e."

Sinon, il remplace bien [param1] par "LAUNCH BR"

Merci par avance de votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@echo off

Set vCommande=
Set vVersion=

del /Q FichExec.txt
copy FichOri.txt FichExec.txt

Set vCommande=LAUNCH BR

setLocal EnableDelayedExpansion

for /f "tokens=* delims= " %%a in (FichExec.txt) do (
set str=%%a
set str=!str:[param1]=%vCommande%!
echo !str!>>fichTemp.txt)

REM Creation du script Conso
REM ========================
type fichTemp.txt>FichExec.txt
del fichTemp.txt

REM ** debugg ********************
REM type FichExec.txt
REM pause>nul
Fichier source
Vide
Vide

Vide
Vide

tab-ci-dessus
vide
[param1]

vide

espace-ci-dessus
[param2]

double espace ci-dessus
Résulat obtenu
Vide
Vide
Vide
Vide
Commande ECHO d‚sactiv‚e.
tab-ci-dessus
vide
LAUNCH BR
vide
[param1]=LAUNCH BR
espace-ci-dessus
[param2]
[param1]=LAUNCH BR
double espace ci-dessus
Remarque : dans le résulat, les sauts de lignes sont supprimés!