Salut à tous, je suis tout neuf dans le domaine, donc si mes questions vous paraissent con, c'est qu'elles le sont
La dernière fois que j'ai touché à des commandes DOS, ça devait être sur Windows 2 avec un 80286 :p
Voilà mon petit souci, j'aimerais savoir s'il est possible de créer un script pour remplacer automatiquement une partie de texte par un autre au sein d'un fichier .txt.
Exemple: remplacer la donnée "vic" par "mec" automatiquement au sein d'un fichier .txt.
Merci d'avance pour vos réponses éclairées, si c'est faisable ça me sauve la journée de boulot :p
Demande d'aide pour remplacer des données dans des .txt
Modérateur : WIN32-[GG]
Demande d'aide pour remplacer des données dans des .txt
Modifié en dernier par Liquid le 23 févr. 2018 13:14, modifié 1 fois.
Re: Demande d'aide pour remplacer des données dans des .txt
Si tu as un seul fichier alors, tu peux l'éditer par notepad ou bien notepad++
Il vous suffit de cliquer sur les deux touches ensembles Ctrl+H puis rechercher et remplaçer
Si tu as plusieurs fichiers texte, alors il faut faire un batch
EDIT :
Il vous suffit de cliquer sur les deux touches ensembles Ctrl+H puis rechercher et remplaçer
Si tu as plusieurs fichiers texte, alors il faut faire un batch
EDIT :
Code : Tout sélectionner
@echo off
Title Rechercher et remplacer dans (*.txt)
Set "Tmpvbs=%temp%\Tmpvbs.vbs"
set "String2Find=personnes_vphysiques_vic"
set "ReplaceWith=personnes_physiques_mec"
setlocal enableDelayedExpansion
for /f "delims=" %%f in ('Dir /a-d /b /s "*.txt"') do (
Set "InputFile=%%f"
Set "OutPutFile=%%~dpf%%~nf_%%~xf"
Call :Replace !String2Find! !ReplaceWith! "!InputFile!" "!OutPutFile!"
)
If Exist "%Tmpvbs%" Del "%Tmpvbs%"
pause & exit
::*************************************************************
:Replace <String2Find> <ReplaceWith> <InputFile> <OutPutFile>
(
echo Data = WScript.StdIn.ReadAll
echo Data = Replace(Data,"%~1","%~2",1, -1, 1^)
echo WScript.StdOut.WriteLine Data
)>"%Tmpvbs%"
cscript //nologo "%Tmpvbs%" < "%~3" > "%~4"
Move /Y "%~4" "%~3">nul
exit /b
::*************************************************************
Re: Demande d'aide pour remplacer des données dans des .txt
Merci infiniment, c'est tout bonnement fabuleux!
Re: Demande d'aide pour remplacer des données dans des .txt
J'ai maintenant un autre souci: comme je bosse sur un fichier Xml transormé en .txt, je crois que je suis embêté avec les balises "<XXX>".
Qu'est-ce qui ne va pas dans ce script?
Qu'est-ce qui ne va pas dans ce script?
Code : Tout sélectionner
@echo off
Title Rechercher et remplacer dans (fichier.xml)
Set "Tmpvbs=%temp%\Tmpvbs.vbs"
set "String2Find=VIC"
set "ReplaceWith=MEC"
Set "String2Find="<XXX>""
set "ReplaceWith="<XXX><XXX>XXX</XXX><XXX>XXX</XXX><XXX>""
setlocal enableDelayedExpansion
for /f "delims=" %%f in ('Dir /a-d /b /s "fichier.xml"') do (
Set "InputFile=%%f"
Set "OutPutFile=%%~dpf%%~nf_%%~xf"
Call :Replace !String2Find! !ReplaceWith! "!InputFile!" "!OutPutFile!"
)
If Exist "%Tmpvbs%" Del "%Tmpvbs%"
pause & exit
::*************************************************************
:Replace <String2Find> <ReplaceWith> <InputFile> <OutPutFile>
(
echo Data = WScript.StdIn.ReadAll
echo Data = Replace(Data,"%~1","%~2",1, -1, 1^)
echo WScript.StdOut.WriteLine Data
)>"%Tmpvbs%"
cscript //nologo "%Tmpvbs%" < "%~3" > "%~4"
Move /Y "%~4" "%~3">nul
exit /b
::*************************************************************
Modifié en dernier par Liquid le 23 févr. 2018 16:57, modifié 1 fois.
Re: Demande d'aide pour remplacer des données dans des .txt
Bon j'ai trouvé comment faire pour les "<" et ">", il faut les écrire "^<".
Maintenant je pense que c'est les fins de balise "/" qui me posent problème, il me sort "Le chemin d'accès spécifié est introuvable. Le fichier spécifié est introuvable."
Edit: j'ai testé en enlevant les slashs, même problème
Code : Tout sélectionner
@echo off
Title Rechercher et remplacer dans (fichier.xml)
Set "Tmpvbs=%temp%\Tmpvbs.vbs"
set "String2Find=VIC"
set "ReplaceWith=MEC"
Set "String2Find=^<XXX^>"
set "ReplaceWith="^<XXX^>^<XXX^>XXX^</XXX^>^<XXX^>XXX^</XXX^>^<XXX^>"
setlocal enableDelayedExpansion
for /f "delims=" %%f in ('Dir /a-d /b /s "fichier.xml"') do (
Set "InputFile=%%f"
Set "OutPutFile=%%~dpf%%~nf_%%~xf"
Call :Replace !String2Find! !ReplaceWith! "!InputFile!" "!OutPutFile!"
)
If Exist "%Tmpvbs%" Del "%Tmpvbs%"
pause & exit
::*************************************************************
:Replace <String2Find> <ReplaceWith> <InputFile> <OutPutFile>
(
echo Data = WScript.StdIn.ReadAll
echo Data = Replace(Data,"%~1","%~2",1, -1, 1^)
echo WScript.StdOut.WriteLine Data
)>"%Tmpvbs%"
cscript //nologo "%Tmpvbs%" < "%~3" > "%~4"
Move /Y "%~4" "%~3">nul
exit /b
::*************************************************************
Edit: j'ai testé en enlevant les slashs, même problème
Re: Demande d'aide pour remplacer des données dans des .txt
Salut
Pouvez-vous me poster le fichier XML en expliquant mieux ton but ?
Merci !
Pouvez-vous me poster le fichier XML en expliquant mieux ton but ?
Merci !