Remplacer chaine de caractère dans un fihier texte
Résolu
yaphilde
Messages postés
35
Statut
Membre
-
barnabe0057 Messages postés 17074 Date d'inscription Statut Contributeur Dernière intervention -
barnabe0057 Messages postés 17074 Date d'inscription Statut Contributeur Dernière intervention -
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:
Mon objectif est de remplacer dans ce fichier et à chaque ligne la chaine de caractère suivante:
je souhaite que cette chaine de caractère devienne:
Donc voici pour le moment le contenu de mon fichier batch
testylg.bat
Pour le moment voici le contenu de mon fichier de sorti:
ACLMAJ.txt
Merci d'avance
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
A voir également:
- Batch remplacer texte dans fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier batch - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
Bon j'ai trouvé la solution il faut remplacer:
par
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.
bonne soirée à tous
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
barnabe0057
Messages postés
17074
Date d'inscription
Statut
Contributeur
Dernière intervention
4 926
Merci, bon week-end.