Je souhaite, à l'aide d'un batch, modifier le contenu d'un fichier ini avant le lancement de l'application qui lui est liée
 
apparté : le soft est msnbuster, qui me sert à limiter le temps d'utilisation du pc pour les enfants
Pourquoi ce batch alors que le soft permet de définir des tranches horaires journalières, et le nombre d'heures au quotidien ?
Et bien dans le cas ou, ponctuellement, nous souhaitons limiter exceptionnellement de façon differente pour un certain jour
exemple : lundi =180min allouées mais exceptionnellement ils n'auront que 30min
 
Je souhaite donc lire le fichier MSNBUSTER.INI, trouver la ligne correspondante au jour en cours (exemple J2) et modifier la valeur après "=" qui est, par défaut à "180".
 
Fichier MSNBUSTER.INI
| Code : 
 MAXDURATION_J1=180 ;NBTIMESLOTS1=1STARTHOUR_J10=6STARTMINS_J10=0STOPHOUR_J10=22STOPMINS_J10=0MAXDURATION_J2=180 ;NBTIMESLOTS2=1STARTHOUR_J20=6STARTMINS_J20=0STOPHOUR_J20=22STOPMINS_J20=0MAXDURATION_J3=180 ;NBTIMESLOTS3=1STARTHOUR_J30=6STARTMINS_J30=0STOPHOUR_J30=22STOPMINS_J30=0
 | 
 
Batch que j'ai adapté, sans succès  
| Code : 
 @ECHO OFFSET /P timer=temps?=SET valeur1=MAXDURATION_J2FOR /F "delims=" %%A IN (msnbuster.ini) DO (    SET Text=%%A    CALL :Replace) >>msnbuster.iniGOTO End:ReplaceCALL SET NewText=%%Text:%valeur1%=MAXDURATION_J4=%timer%%%ECHO %NewText%:End
 | 
 
Il ajoute bien la valeur à la bonne ligne mais il laisse l'ancienne valeur après !
| Code : 
 MAXDURATION_J1=180 ;NBTIMESLOTS1=1STARTHOUR_J10=6STARTMINS_J10=0STOPHOUR_J10=22STOPMINS_J10=0MAXDURATION_J2=30=180 ;NBTIMESLOTS2=1STARTHOUR_J20=6STARTMINS_J20=0STOPHOUR_J20=22STOPMINS_J20=0MAXDURATION_J3=180 ;NBTIMESLOTS3=1STARTHOUR_J30=6STARTMINS_J30=0STOPHOUR_J30=22STOPMINS_J30=0
 | 
 
Alors que le bon résultat devait être
 ;
 
Avez-vous une idée car je tourne en rond avec des tests non concluants dans tous les sens 
 
Message édité par CARL KEATON le 29-06-2010 à 15:55:28