Menu

Remplacer chaine de caractère dans un fihier texte [Résolu/Fermé]

yaphilde 29 Messages postés lundi 9 janvier 2017Date d'inscription 5 avril 2018 Dernière intervention - 16 févr. 2017 à 22:23 - Dernière réponse : barnabe0057 12052 Messages postés lundi 2 mars 2009Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention
- 18 févr. 2017 à 10:34
Bonjour à tous et merci d'avance à tous ceux qui jetteront un oeil à mon problème :-).
Je sais que ce type de question a déjà été posée moult fois et il me semble que j'ai déjà réussi mais je n'y arrive plus...snifff

Voici mon problème.
Je veux traité à l'aide d'un batch un fichier texte que nous nommerons:

ACL.txt
voici le type de contenu présent:
"\\?\F:\CSES\Modele\01 - ACL\template",1,"O:BAG:S-1-5-21-883904459-4216954326-136242123-513D:PAI(A;OICI;FA;;;S-1-5-21-883904459-4216954326-136242123-1000)S:PAINO_ACCESS_CONTROL"
"\\?\F:\CSES\Modele\01 - ACL\template\R1 Accueillir",1,"O:BAG:S-1-5-21-883904459-4216954326-136242123-513"
"\\?\F:\CSES\Modele\01 - ACL\template\R1 Accueillir\01 - Dossier admission",1,"O:BAG:S-1-5-21-883904459-4216954326-136242123-513"
"\\?\F:\CSES\Modele\01 - ACL\template\R1 Accueillir\01 - Dossier admission\01 - 1er contact",1,"O:BAG:S-1-5-21-883904459-4216954326-136242123-513"
"\\?\F:\CSES\Modele\01 - ACL\template\R1 Accueillir\01 - Dossier admission\02 - Bilans",1,"O:BAG:S-1-5-21-883904459-4216954326-136242123-513"
"\\?\F:\CSES\Modele\01 - ACL\template\R1 Accueillir\01 - Dossier admission\03 - Semaine observation",1,"O:BAG:S-1-5-21-883904459-4216954326-136242123-513"
"\\?\F:\CSES\Modele\01 - ACL\template\R1 Accueillir\01 - Dossier admission\04 - Courriers",1,"O:BAG:S-1-5-21-883904459-4216954326-136242123-513"


Mon objectif est de remplacer dans ce fichier et à chaque ligne la chaine de caractère suivante:
F:\CSES\Modele\01 - ACL\template


je souhaite que cette chaine de caractère devienne:
F:\CSES\PARTAGE\PROCESSUS DE REALISATION\00 - USAGER\template



Donc voici pour le moment le contenu de mon fichier batch
testylg.bat

:: Commande de renommage
echo off
cls
setlocal
 set CheminSource="F:\CSES\Modele\01 - ACL\template"
 set CheminModifie="F:\CSES\PARTAGE\PROCESSUS DE REALISATION\00 - USAGER\template"
 set FichierATraiter="C:\Users\Admin\Desktop\AAA\V21\test\ACL.txt"
 set FichierDeSortie="C:\Users\Admin\Desktop\AAA\V21\test\ACLMAJ.txt"

 for /f "usebackq delims=*" %%T in ("%FichierATraiter%") do (
 Set TempVar=%%T
 set TempVar=!TempVar:%CheminSource%=%CheminModifie%!
 echo $TempVar$
 echo !TempVar!>>"%FichierDeSortie%"
  )
endlocal 

Pour le moment voici le contenu de mon fichier de sorti:
ACLMAJ.txt
!TempVar!
!TempVar!
!TempVar!
!TempVar!
!TempVar!
!TempVar!
    .....
    .....



Merci d'avance



Afficher la suite 

2 réponses

Meilleure réponse
yaphilde 29 Messages postés lundi 9 janvier 2017Date d'inscription 5 avril 2018 Dernière intervention - Modifié par yaphilde le 17/02/2017 à 00:27
1
Merci
Bon j'ai trouvé la solution il faut remplacer:

setlocal


par

Setlocal enableextensions enabledelayedexpansion


J'étais persuadé d'avoir fait le test mais qu'il n'avait pas fonctionné. Je ne sais pas si le fait de ne pas avoir relancé la ligne de commande (CMD) complètement n'aurait pas gardé en mémoire des mauvais tests. En tout cas j'ai relancé le CMD puis executer mon batch et j'ai le résultat voulu.

voici mon batch complet pour ce qui ca interesserai de modifier une chaine de caractère par une autre sur l'ensemble d'un fichier texte.


:: Commande de renommage
echo off
cls
 set FichierATraiter=C:\Users\Admin\Desktop\AAA\V21\test\ACLAnsi.txt
 set FichierDeSortie="C:\Users\Admin\Desktop\AAA\V21\test\ACLMAJ.txt"
 set CheminSource=F:\CSES\Modele\01 - ACL\template
 set CheminModifie=F:\CSES\PARTAGE\PROCESSUS DE REALISATION\00 - USAGER\template

Setlocal enableextensions enabledelayedexpansion
  for /f "usebackq delims=*" %%T in ("%FichierATraiter%") do (
  Set TempVar=%%T
  echo %%T
  set TempVar=!TempVar:%CheminSource%=%CheminModifie%!
  echo $TempVar$
  echo !TempVar!>>"%FichierDeSortie%"
  )
endlocal


bonne soirée à tous

Merci yaphilde 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 23875 internautes ce mois-ci

barnabe0057 12052 Messages postés lundi 2 mars 2009Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention - 18 févr. 2017 à 10:34
Merci, bon week-end.