Rechercher un ligne contenant une chaîne de caractère et la remplacer
Posté : 08 mai 2020 15:39
Bonjour,
Je suis près du but mais je coince.
Mon objectif est le suivant. Chercher dans un fichier .ini la chaîne de caractère "publicAddr".
Je dois trouver une ligne qui contient :"publicAddr=X" X étant une adresse ip qui varie et remplacer cette ligne par "publicAddr=Y". Y étnt la variable ADRIP que j'arrive à récupérer.
J'ai essayé ce code mais ça ne fonctionne pas.
Je récupère bien l'adresse ip public qu'il va me falloir mettre dans le fichier cible mais c'est tout. Le remplacement ne se fait pas. Mon fichier cible microsip.txt reste vide.....
:: Lecture ip public active
@echo off
for /F "delims=," %%i in ('ipconfig /all^|find "Adresse IPv4. . . . . . . . . . . . . .: 10.221."') do set ADRIP=%%i
set ADRIP=%ADRIP:~44,13%
echo %ADRIP%
pause
:: Commande de renommage
echo off
set FichierATraiter=C:\0Perso\@contract manager\Programmation\MicroSIP.ini
set FichierDeSortie=C:\0Perso\@contract manager\Programmation\microsip.txt
set Source=publicAddr
set Modifie=%ADRIP%
Setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=*" %%T in ("%FichierATraiter%") do (
Set TempVar=%%T
echo %%T
pause
set TempVar=!TempVar:%Source%=%Modifie%!
echo $TempVar$
echo !TempVar!>>"%FichierDeSortie%"
)
endlocal
Merci d'avance de votre aide.
Je suis près du but mais je coince.
Mon objectif est le suivant. Chercher dans un fichier .ini la chaîne de caractère "publicAddr".
Je dois trouver une ligne qui contient :"publicAddr=X" X étant une adresse ip qui varie et remplacer cette ligne par "publicAddr=Y". Y étnt la variable ADRIP que j'arrive à récupérer.
J'ai essayé ce code mais ça ne fonctionne pas.
Je récupère bien l'adresse ip public qu'il va me falloir mettre dans le fichier cible mais c'est tout. Le remplacement ne se fait pas. Mon fichier cible microsip.txt reste vide.....
:: Lecture ip public active
@echo off
for /F "delims=," %%i in ('ipconfig /all^|find "Adresse IPv4. . . . . . . . . . . . . .: 10.221."') do set ADRIP=%%i
set ADRIP=%ADRIP:~44,13%
echo %ADRIP%
pause
:: Commande de renommage
echo off
set FichierATraiter=C:\0Perso\@contract manager\Programmation\MicroSIP.ini
set FichierDeSortie=C:\0Perso\@contract manager\Programmation\microsip.txt
set Source=publicAddr
set Modifie=%ADRIP%
Setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=*" %%T in ("%FichierATraiter%") do (
Set TempVar=%%T
echo %%T
pause
set TempVar=!TempVar:%Source%=%Modifie%!
echo $TempVar$
echo !TempVar!>>"%FichierDeSortie%"
)
endlocal
Merci d'avance de votre aide.