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=1
- STARTHOUR_J10=6
- STARTMINS_J10=0
- STOPHOUR_J10=22
- STOPMINS_J10=0
- MAXDURATION_J2=180 ;
- NBTIMESLOTS2=1
- STARTHOUR_J20=6
- STARTMINS_J20=0
- STOPHOUR_J20=22
- STOPMINS_J20=0
- MAXDURATION_J3=180 ;
- NBTIMESLOTS3=1
- STARTHOUR_J30=6
- STARTMINS_J30=0
- STOPHOUR_J30=22
- STOPMINS_J30=0
|
Batch que j'ai adapté, sans succès
Code :
- @ECHO OFF
- SET /P timer=temps?=
- SET valeur1=MAXDURATION_J2
- FOR /F "delims=" %%A IN (msnbuster.ini) DO (
- SET Text=%%A
- CALL :Replace
- ) >>msnbuster.ini
- GOTO End
- :Replace
- CALL 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=1
- STARTHOUR_J10=6
- STARTMINS_J10=0
- STOPHOUR_J10=22
- STOPMINS_J10=0
- MAXDURATION_J2=30=180 ;
- NBTIMESLOTS2=1
- STARTHOUR_J20=6
- STARTMINS_J20=0
- STOPHOUR_J20=22
- STOPMINS_J20=0
- MAXDURATION_J3=180 ;
- NBTIMESLOTS3=1
- STARTHOUR_J30=6
- STARTMINS_J30=0
- STOPHOUR_J30=22
- STOPMINS_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