est il possible de modifier des fichiers en batch ?
je donne un exemple.
le but est de remplacer qqchose dans un fichier (comme d habitude quoi ) à un endroit bien precis.
.....
Machin = trucNouveau <= y a que là que ca change
Bidule = truc
.....
tous le fichier est composé de "info = valeur".
ma question n'implique pas la creation du code. je veux pas le resultat du batch. je voudrais savoir comment faire ... juste un tuyau pour commencer . j ai bien compris pour Find et For. mais c est le remplacement qu'il me manque. est ce que je dois passer par des fichier temporaire ? mais meme là je vois pas comment faire
autre contrainte. Je ne peux pas rajouter de programme comme "Switch" par exemple j ai que du dos de base utilisable (OS = NT)
@echo off
rem pour chaque ligne du fichier c:\temp.txt tu appelle le bat c:\switch.bat et tu lui passe en paramètre la ligne
FOR /f "delims=" %%a IN (c:\temp.txt) DO (call c:\switch.bat "%%a")
rem tu supprime le fichier original c:\temp.txt
del c:\temp.txt
rem et tu renomme le nouveau fichier par l'ancien
ren c:\temp2.txt temp.txt
@echo off
rem tu stock le paramètre %1 dans la variable %var%
set var=%1
rem tu supprime les guillemet de chaque coté de la variable %var%
set var=%var:~1,-1%
rem tu remplace dans la ligne le terme truc par trucNouveau
set var=%var:truc=trucNouveau%
rem tu enregistre la nouvelle ligne dans un fichier temporaire nommé temp2.txt
echo %var%>>c:\temp2.txt
**************************************
*
* Debut du fichier FROM
*
** Info générale
Nom=Mon Nom
Prenom= Mon prenom
** info bio
Lataille=170
lepoids=70
*
* FIN fichier
*
***************************************
@echo off
cls
del out.txt
set NouvTaille=192
for /F "tokens=1,2* delims==" %%i in (from.txt) do call :OKDOK "%%i" "%%j"
copy /y out.txt from.txt
del out.txt
pause
goto :eof
:OKDOK
if %2 NEQ "" set out=%~1=%~2
if %1 EQU "Lataille" set out=Lataille=%NouvTaille%
if %2 == "" set out=%~1
echo %out% >> out.txt
goto :eof
vous en pensez quoi ?
ça fonctionne mais je trouve qu'il y a quelque chose qui cloche mais j arrive pas a voir quoi.
Ben justement j ai pas de bug et c'est ça qui me surprend. enfin sauf que s il y a des lignes vides dans mon fichier d'entré(From) je ne les retrouve pas dans mon fichier de sortie et je ne vois pas comment faire
Mais bon si tous semble bon, alors mon problème semblerai résolu.