Supprimer une section dans un fichier - .bat
Résolu/Fermé
A voir également:
- Supprimer une section dans un fichier - .bat
- Supprimer une page word - Guide
- Fichier rar - Guide
- Fichier bat - Guide
- Supprimer compte instagram - Guide
- Fichier host - Guide
14 réponses
Bonsoir,
Un petit UP s'il vous plait.
PS : Si il y a une alternative au fichier .bat, je suis preneur, par contre je ne m'y connait pas.
Cordialement
Pilotepro
Un petit UP s'il vous plait.
PS : Si il y a une alternative au fichier .bat, je suis preneur, par contre je ne m'y connait pas.
Cordialement
Pilotepro
Bonjour,
Ou plus simple encore expliqué moi juste comment je fais pour séléctionné l'information 1 et 2 car il n'y a aucun délimiteurs que je pourrait utilisé (regardé la structure du fichier), alors comment faire ?
Merci d'avance de votre aide !
PS : C'est vraiment important, et un projet entier est bloqué à cause de ça.
Cordialement
Pilotepro
Ou plus simple encore expliqué moi juste comment je fais pour séléctionné l'information 1 et 2 car il n'y a aucun délimiteurs que je pourrait utilisé (regardé la structure du fichier), alors comment faire ?
Merci d'avance de votre aide !
PS : C'est vraiment important, et un projet entier est bloqué à cause de ça.
Cordialement
Pilotepro
salut,
bon alors moi j'ai fais ça:
j'ai au debut mon fichier test.cfg qui contient ceci:
[Area.XX]
Title=toto
Local=val1
Layer=XX
Active=TRUE
Required=FALSE1
[Area.XX]
Title=titi
Local=val2
Layer=XX
Active=TRUE
Required=FALSE2
[Area.XX]
Title=tata
Local=val3
Layer=XX
Active=TRUE
Required=FALSE3
voila ensuite je lance mon batch:
@echo off
echo ----------------------
echo Section a supprimer
echo ----------------------
echo.
SETLOCAL enabledelayedextension
set /p info1=Saisir le "title" :
set /p info2=Saisir le "local" :
for /f %%i in ('type test.cfg ^| find /N "%info1%"') do set numero_ligne1=%%i
for /f %%i in ('type test.cfg ^| find /N "%info2%"') do set numero_ligne2=%%i
set numero1_final=%numero_ligne1:~1,1%
set numero2_final=%numero_ligne2:~1,1%
set /a diff=%numero2_final% - %numero1_final%
if %diff% EQU 1 goto go
if %diff% NEQ 1 goto err
:go
set /a derniere_ligne_a_garder=%numero1_final% - 2
set /a premiere_ligne_a_reprendre=%numero1_final% + 5
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . test.cfg') do (
if %%i geq 1 (
if %%i leq 6 (
if %%i equ 1 (
echo %%j >resultat.cfg
) else (
echo %%j >>resultat.cfg
)
)
)
)
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . test.cfg') do if %%i geq %premiere_ligne_a_reprendre% echo %%j >>resultat.cfg
echo.
echo Section supprimee
echo.
PAUSE
exit
:err
echo.
echo Impossible de trouver la section
echo.
PAUSE
Je saisi par exemple pour l'info1 titi puis pour l'info2 val2
et je retrouve dans mon fichier resultat.cfg:
[Area.XX]
Title=toto
Local=val1
Layer=XX
Active=TRUE
Required=FALSE1
[Area.XX]
Title=tata
Local=val3
Layer=XX
Active=TRUE
Required=FALSE3
Voili voilou est-ce que ceci te correspond???
a+
bon alors moi j'ai fais ça:
j'ai au debut mon fichier test.cfg qui contient ceci:
[Area.XX]
Title=toto
Local=val1
Layer=XX
Active=TRUE
Required=FALSE1
[Area.XX]
Title=titi
Local=val2
Layer=XX
Active=TRUE
Required=FALSE2
[Area.XX]
Title=tata
Local=val3
Layer=XX
Active=TRUE
Required=FALSE3
voila ensuite je lance mon batch:
@echo off
echo ----------------------
echo Section a supprimer
echo ----------------------
echo.
SETLOCAL enabledelayedextension
set /p info1=Saisir le "title" :
set /p info2=Saisir le "local" :
for /f %%i in ('type test.cfg ^| find /N "%info1%"') do set numero_ligne1=%%i
for /f %%i in ('type test.cfg ^| find /N "%info2%"') do set numero_ligne2=%%i
set numero1_final=%numero_ligne1:~1,1%
set numero2_final=%numero_ligne2:~1,1%
set /a diff=%numero2_final% - %numero1_final%
if %diff% EQU 1 goto go
if %diff% NEQ 1 goto err
:go
set /a derniere_ligne_a_garder=%numero1_final% - 2
set /a premiere_ligne_a_reprendre=%numero1_final% + 5
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . test.cfg') do (
if %%i geq 1 (
if %%i leq 6 (
if %%i equ 1 (
echo %%j >resultat.cfg
) else (
echo %%j >>resultat.cfg
)
)
)
)
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . test.cfg') do if %%i geq %premiere_ligne_a_reprendre% echo %%j >>resultat.cfg
echo.
echo Section supprimee
echo.
PAUSE
exit
:err
echo.
echo Impossible de trouver la section
echo.
PAUSE
Je saisi par exemple pour l'info1 titi puis pour l'info2 val2
et je retrouve dans mon fichier resultat.cfg:
[Area.XX]
Title=toto
Local=val1
Layer=XX
Active=TRUE
Required=FALSE1
[Area.XX]
Title=tata
Local=val3
Layer=XX
Active=TRUE
Required=FALSE3
Voili voilou est-ce que ceci te correspond???
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon en fait il y avait plusieurs souci, alors j'ai revue le code:
Voila quelque chose qui me parait stable...:
@echo off
echo ----------------------
echo Section a supprimer
echo ----------------------
echo.
set /p info1=Saisir le "title" :
set /p info2=Saisir le "local" :
for /f "tokens=1 delims=[]" %%i in ('type test.cfg ^| find /N "%info1%"') do set numero1_final=%%i
for /f "tokens=1 delims=[]" %%i in ('type test.cfg ^| find /N "%info2%"') do set numero2_final=%%i
set /a diff=%numero2_final% - %numero1_final%
if %diff% EQU 1 goto go
if %diff% NEQ 1 goto err
:go
set /a derniere_ligne_a_garder=%numero1_final% - 2
set /a premiere_ligne_a_reprendre=%numero1_final% + 5
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . test.cfg') do (
if %%i geq 1 (
if %%i leq %derniere_ligne_a_garder% (
if %%i equ 1 (
echo %%j >resultat.cfg
) else (
echo %%j >>resultat.cfg
)
)
)
)
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . test.cfg') do if %%i geq %premiere_ligne_a_reprendre% echo %%j >>resultat.cfg
echo.
echo Section supprimee
echo.
PAUSE
exit
:err
echo.
echo Impossible de trouver la section
echo.
PAUSE
a++
Voila quelque chose qui me parait stable...:
@echo off
echo ----------------------
echo Section a supprimer
echo ----------------------
echo.
set /p info1=Saisir le "title" :
set /p info2=Saisir le "local" :
for /f "tokens=1 delims=[]" %%i in ('type test.cfg ^| find /N "%info1%"') do set numero1_final=%%i
for /f "tokens=1 delims=[]" %%i in ('type test.cfg ^| find /N "%info2%"') do set numero2_final=%%i
set /a diff=%numero2_final% - %numero1_final%
if %diff% EQU 1 goto go
if %diff% NEQ 1 goto err
:go
set /a derniere_ligne_a_garder=%numero1_final% - 2
set /a premiere_ligne_a_reprendre=%numero1_final% + 5
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . test.cfg') do (
if %%i geq 1 (
if %%i leq %derniere_ligne_a_garder% (
if %%i equ 1 (
echo %%j >resultat.cfg
) else (
echo %%j >>resultat.cfg
)
)
)
)
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . test.cfg') do if %%i geq %premiere_ligne_a_reprendre% echo %%j >>resultat.cfg
echo.
echo Section supprimee
echo.
PAUSE
exit
:err
echo.
echo Impossible de trouver la section
echo.
PAUSE
a++
Bonsoir,
Merci énormément pour tout votre travail !
Mon équipe et moi étions désespérés.
Alors, en ce qui concerne votre script, sachant que ce script sera lancé à la fin de l'installation, l'utilisateur n'a rien à entré, ça sera à moi de définir dans le code du batch les informations 1 et 2, d'autre part malgré tout le mal que vous vous êtes donné (je vous en remercie encore), eh bien même quand je rentre la bonne information 1 et 2 au début, il me dit quand même que la section n'existe pas alors qu'elle y est. Une dernière chose et pas des moindres, si j'ai bien compris votre fichier copie la section choisie dans un autre fichier, or ce dont nous avons besoin est qu'il supprime juste la section en question, et il n'a pas besoin de la copié.
PS : La structure n'est pas :
[Area.XX]
Title=toto
Local=val1
Layer=XX
Active=TRUE
Required=FALSE1
[Area.XX]
Title=tata
Local=val3
Layer=XX
Active=TRUE
Required=FALSE3
Elle est (dans le cas de votre exemple) :
[Area.XX]
Title=toto1
Local=chemin\val1
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=toto2
Local=chemin\val2
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=toto3
Local=chemin\val3
Layer=160
Active=TRUE
Required=FALSE
Le résultat final que nous souhaitons étant :
[Area.XX]
Title=nomdelascene
Local=Scenery\dossierdelascene
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene2
Local=Scenery\dossierdelascene2
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene3
Local=Scenery\dossierdelascene3
Layer=XX
Active=TRUE
Required=FALSE
(Les espaces entres les différents paragraphes sont importants)
Et c'est exactement comme cela, si vous changez une valeur, alors tout le fichier scenery.cfg est fichu.
Merci de votre aide !
J'espère que vous pourrez nous aidé, avec les recommandations faites ci-dessus.
Cordialement
Pilotepro
Merci énormément pour tout votre travail !
Mon équipe et moi étions désespérés.
Alors, en ce qui concerne votre script, sachant que ce script sera lancé à la fin de l'installation, l'utilisateur n'a rien à entré, ça sera à moi de définir dans le code du batch les informations 1 et 2, d'autre part malgré tout le mal que vous vous êtes donné (je vous en remercie encore), eh bien même quand je rentre la bonne information 1 et 2 au début, il me dit quand même que la section n'existe pas alors qu'elle y est. Une dernière chose et pas des moindres, si j'ai bien compris votre fichier copie la section choisie dans un autre fichier, or ce dont nous avons besoin est qu'il supprime juste la section en question, et il n'a pas besoin de la copié.
PS : La structure n'est pas :
[Area.XX]
Title=toto
Local=val1
Layer=XX
Active=TRUE
Required=FALSE1
[Area.XX]
Title=tata
Local=val3
Layer=XX
Active=TRUE
Required=FALSE3
Elle est (dans le cas de votre exemple) :
[Area.XX]
Title=toto1
Local=chemin\val1
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=toto2
Local=chemin\val2
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=toto3
Local=chemin\val3
Layer=160
Active=TRUE
Required=FALSE
Le résultat final que nous souhaitons étant :
[Area.XX]
Title=nomdelascene
Local=Scenery\dossierdelascene
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene2
Local=Scenery\dossierdelascene2
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene3
Local=Scenery\dossierdelascene3
Layer=XX
Active=TRUE
Required=FALSE
(Les espaces entres les différents paragraphes sont importants)
Et c'est exactement comme cela, si vous changez une valeur, alors tout le fichier scenery.cfg est fichu.
Merci de votre aide !
J'espère que vous pourrez nous aidé, avec les recommandations faites ci-dessus.
Cordialement
Pilotepro
bonjour,
bon désolé j'étais pas trop la ce week-end...
Alors ok je vais modifier pour que vous puissiez mettre les infos dans le code.
Ensuite ok je vais modifier pour que cela reste dans le meme fichier (en revanche l'ancien sera tjs existant (on sait jamais en cas de problème) mais je mettrai l'extension .old...)
Enfin il ne trouve pas la section, ça m'étonne:
- les lignes Title=nomdelascenexxx et Local=Scenery\dossierdelascene2 se suivent-elles ???
Avec ces ééponses je vous refererai le code!
Si cela ne fonntionne toujours pas, il faudra voir si vous pouvez directement me donner le fichier .cfg que je puisse voir réellement le souci
bon désolé j'étais pas trop la ce week-end...
Alors ok je vais modifier pour que vous puissiez mettre les infos dans le code.
Ensuite ok je vais modifier pour que cela reste dans le meme fichier (en revanche l'ancien sera tjs existant (on sait jamais en cas de problème) mais je mettrai l'extension .old...)
Enfin il ne trouve pas la section, ça m'étonne:
- les lignes Title=nomdelascenexxx et Local=Scenery\dossierdelascene2 se suivent-elles ???
Avec ces ééponses je vous refererai le code!
Si cela ne fonntionne toujours pas, il faudra voir si vous pouvez directement me donner le fichier .cfg que je puisse voir réellement le souci
Bonjour,
Merci infiniment pour votre aide !
Alors, ok alors pour le "scenery old" c'est une excellente idée, et je vous en remercie. En ce qui concerne le script l'erreur vient en fait de moi, javait oublié de renommer le fichier dans les codes du script, et je vient de ressayer et ça marche. Il y a juste un problème et pas des moindres, c'est que dans le fichier final, la section est bien supprimé mais aussi l'espace qui sépare les différents paragraphes, donc si vous pouviez remédier à ce petit problème ça serait parfait.
Merci d'avance de votre aide et vivement le résultat !
Cordialement
Pilotepro
Merci infiniment pour votre aide !
Alors, ok alors pour le "scenery old" c'est une excellente idée, et je vous en remercie. En ce qui concerne le script l'erreur vient en fait de moi, javait oublié de renommer le fichier dans les codes du script, et je vient de ressayer et ça marche. Il y a juste un problème et pas des moindres, c'est que dans le fichier final, la section est bien supprimé mais aussi l'espace qui sépare les différents paragraphes, donc si vous pouviez remédier à ce petit problème ça serait parfait.
Merci d'avance de votre aide et vivement le résultat !
Cordialement
Pilotepro
Bonjour,
J'ai aussi oublier de vous précisez, que vu que le script sera exécuter automatiquement en fin d'installation, et que l'utilisateur n'a rien à faire, qu'il faut que vous enleviez la confirmation à la fin, demandant d'appuyer sur une touche pour continuer, et toutes les autres confirmations si il y en a, il faut donc que le script s'éteigne directement à la fin de l'opération.
Cordialement
Piltoepro
J'ai aussi oublier de vous précisez, que vu que le script sera exécuter automatiquement en fin d'installation, et que l'utilisateur n'a rien à faire, qu'il faut que vous enleviez la confirmation à la fin, demandant d'appuyer sur une touche pour continuer, et toutes les autres confirmations si il y en a, il faut donc que le script s'éteigne directement à la fin de l'opération.
Cordialement
Piltoepro
ok alors pour moi cela a l'air de fonctionner:
@echo off
echo ----------------------
echo Section a supprimer
echo ----------------------
echo.
type scenery.cfg > scenery.cfg.old
set info1=toto
set info2=val1
for /f "tokens=1 delims=[]" %%i in ('type scenery.cfg.old ^| find /N "%info1%"') do set numero1_final=%%i
for /f "tokens=1 delims=[]" %%i in ('type scenery.cfg.old ^| find /N "%info2%"') do set numero2_final=%%i
set /a diff=%numero2_final% - %numero1_final%
if %diff% EQU 1 goto go
if %diff% NEQ 1 goto err
:go
SETLOCAL enabledelayedexpansion
set /a derniere_ligne_a_garder=%numero1_final% - 2
set /a premiere_ligne_a_reprendre=%numero1_final% + 5
for /f "tokens=1,2,* delims=:=." %%i in ('findstr /n /r . scenery.cfg.old') do (
if %%i geq 1 (
if %%i leq %derniere_ligne_a_garder% (
if %%i equ 1 (
echo %%j%%k >scenery.cfg
) else (
if %%j EQU Required (
echo %%j=%%k >>scenery.cfg
echo. >>scenery.cfg
) else (
if %%j NEQ [Area (
echo %%j=%%k >>scenery.cfg
) else (
echo %%j.%%k >>scenery.cfg
)
)
)
)
)
)
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . scenery.cfg.old') do if %%i geq %premiere_ligne_a_reprendre% echo %%j >>scenery.cfg
echo.
echo Section supprimee
echo.
exit
:err
echo.
echo Impossible de trouver la section
echo.
Il faut remplacer les valeurs des variables info1 et info2 en haut du script...
Moi j'ai mis "toto" et "val1" donc a remplacer par vos valeurs.
Ensuite c'est bon il faut juste lancer le script et celui-ci se referme (un .old est créer faisant une sauvagerde du fichier avant traitement.
Hésitez pas à me signaler tout problème...
@echo off
echo ----------------------
echo Section a supprimer
echo ----------------------
echo.
type scenery.cfg > scenery.cfg.old
set info1=toto
set info2=val1
for /f "tokens=1 delims=[]" %%i in ('type scenery.cfg.old ^| find /N "%info1%"') do set numero1_final=%%i
for /f "tokens=1 delims=[]" %%i in ('type scenery.cfg.old ^| find /N "%info2%"') do set numero2_final=%%i
set /a diff=%numero2_final% - %numero1_final%
if %diff% EQU 1 goto go
if %diff% NEQ 1 goto err
:go
SETLOCAL enabledelayedexpansion
set /a derniere_ligne_a_garder=%numero1_final% - 2
set /a premiere_ligne_a_reprendre=%numero1_final% + 5
for /f "tokens=1,2,* delims=:=." %%i in ('findstr /n /r . scenery.cfg.old') do (
if %%i geq 1 (
if %%i leq %derniere_ligne_a_garder% (
if %%i equ 1 (
echo %%j%%k >scenery.cfg
) else (
if %%j EQU Required (
echo %%j=%%k >>scenery.cfg
echo. >>scenery.cfg
) else (
if %%j NEQ [Area (
echo %%j=%%k >>scenery.cfg
) else (
echo %%j.%%k >>scenery.cfg
)
)
)
)
)
)
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . scenery.cfg.old') do if %%i geq %premiere_ligne_a_reprendre% echo %%j >>scenery.cfg
echo.
echo Section supprimee
echo.
exit
:err
echo.
echo Impossible de trouver la section
echo.
Il faut remplacer les valeurs des variables info1 et info2 en haut du script...
Moi j'ai mis "toto" et "val1" donc a remplacer par vos valeurs.
Ensuite c'est bon il faut juste lancer le script et celui-ci se referme (un .old est créer faisant une sauvagerde du fichier avant traitement.
Hésitez pas à me signaler tout problème...
Bonjour,
Merci encore pour votre aide !
Le seul problème qui reste, c'est que toutes les sections suivies de celles qui est supprimés, ont l'espace qui les délimites qui l'est aussi, or cela est très embêtant, car le fichier de configuration ne sera plus reconnu par le programme.
Voici un exemple simple, de ce qu'il se passe :
AVANT :
[Area.XX]
Title=nomdelascene
Local=Scenery\dossierdelascene
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene2
Local=Scenery\dossierdelascene2
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene3
Local=Scenery\dossierdelascene3
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene4
Local=Scenery\dossierdelascene4
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene5
Local=Scenery\dossierdelascene5
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene6
Local=Scenery\dossierdelascene6
Layer=XX
Active=TRUE
Required=FALSE
APRES :
[Area.XX]
Title=nomdelascene
Local=Scenery\dossierdelascene
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene2
Local=Scenery\dossierdelascene2
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene4
Local=Scenery\dossierdelascene4
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene5
Local=Scenery\dossierdelascene5
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene6
Local=Scenery\dossierdelascene6
Layer=XX
Active=TRUE
Required=FALSE
Voilà tout, merci de votre aide et désoler pour le dérangement.
Cordialement
Pilotepro
Merci encore pour votre aide !
Le seul problème qui reste, c'est que toutes les sections suivies de celles qui est supprimés, ont l'espace qui les délimites qui l'est aussi, or cela est très embêtant, car le fichier de configuration ne sera plus reconnu par le programme.
Voici un exemple simple, de ce qu'il se passe :
AVANT :
[Area.XX]
Title=nomdelascene
Local=Scenery\dossierdelascene
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene2
Local=Scenery\dossierdelascene2
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene3
Local=Scenery\dossierdelascene3
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene4
Local=Scenery\dossierdelascene4
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene5
Local=Scenery\dossierdelascene5
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene6
Local=Scenery\dossierdelascene6
Layer=XX
Active=TRUE
Required=FALSE
APRES :
[Area.XX]
Title=nomdelascene
Local=Scenery\dossierdelascene
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene2
Local=Scenery\dossierdelascene2
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene4
Local=Scenery\dossierdelascene4
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene5
Local=Scenery\dossierdelascene5
Layer=XX
Active=TRUE
Required=FALSE
[Area.XX]
Title=nomdelascene6
Local=Scenery\dossierdelascene6
Layer=XX
Active=TRUE
Required=FALSE
Voilà tout, merci de votre aide et désoler pour le dérangement.
Cordialement
Pilotepro
voila avec la modification:
@echo off
echo ----------------------
echo Section a supprimer
echo ----------------------
echo.
type scenery.cfg > scenery.cfg.old
set info1=tata
set info2=val2
for /f "tokens=1 delims=[]" %%i in ('type scenery.cfg.old ^| find /N "%info1%"') do set numero1_final=%%i
for /f "tokens=1 delims=[]" %%i in ('type scenery.cfg.old ^| find /N "%info2%"') do set numero2_final=%%i
set /a diff=%numero2_final% - %numero1_final%
if %diff% EQU 1 goto go
if %diff% NEQ 1 goto err
:go
SETLOCAL enabledelayedexpansion
set /a derniere_ligne_a_garder=%numero1_final% - 2
set /a premiere_ligne_a_reprendre=%numero1_final% + 5
for /f "tokens=1,2,* delims=:=." %%i in ('findstr /n /r . scenery.cfg.old') do (
if %%i geq 1 (
if %%i leq %derniere_ligne_a_garder% (
if %%i equ 1 (
echo %%j%%k >scenery.cfg
) else (
if %%j EQU Required (
echo %%j=%%k >>scenery.cfg
echo. >>scenery.cfg
) else (
if %%j NEQ [Area (
echo %%j=%%k >>scenery.cfg
) else (
echo %%j.%%k >>scenery.cfg
)
)
)
)
)
)
for /f "tokens=1,2,* delims=:=." %%i in ('findstr /n /r . scenery.cfg.old') do (
if %%i geq %premiere_ligne_a_reprendre% (
if %%j EQU Required (
echo %%j=%%k >>scenery.cfg
echo. >>scenery.cfg
) else (
if %%j NEQ [Area (
echo %%j=%%k >>scenery.cfg
) else (
echo %%j.%%k >>scenery.cfg
)
)
)
)
echo.
echo Section supprimee
echo.
exit
:err
echo.
echo Impossible de trouver la section
echo.
@echo off
echo ----------------------
echo Section a supprimer
echo ----------------------
echo.
type scenery.cfg > scenery.cfg.old
set info1=tata
set info2=val2
for /f "tokens=1 delims=[]" %%i in ('type scenery.cfg.old ^| find /N "%info1%"') do set numero1_final=%%i
for /f "tokens=1 delims=[]" %%i in ('type scenery.cfg.old ^| find /N "%info2%"') do set numero2_final=%%i
set /a diff=%numero2_final% - %numero1_final%
if %diff% EQU 1 goto go
if %diff% NEQ 1 goto err
:go
SETLOCAL enabledelayedexpansion
set /a derniere_ligne_a_garder=%numero1_final% - 2
set /a premiere_ligne_a_reprendre=%numero1_final% + 5
for /f "tokens=1,2,* delims=:=." %%i in ('findstr /n /r . scenery.cfg.old') do (
if %%i geq 1 (
if %%i leq %derniere_ligne_a_garder% (
if %%i equ 1 (
echo %%j%%k >scenery.cfg
) else (
if %%j EQU Required (
echo %%j=%%k >>scenery.cfg
echo. >>scenery.cfg
) else (
if %%j NEQ [Area (
echo %%j=%%k >>scenery.cfg
) else (
echo %%j.%%k >>scenery.cfg
)
)
)
)
)
)
for /f "tokens=1,2,* delims=:=." %%i in ('findstr /n /r . scenery.cfg.old') do (
if %%i geq %premiere_ligne_a_reprendre% (
if %%j EQU Required (
echo %%j=%%k >>scenery.cfg
echo. >>scenery.cfg
) else (
if %%j NEQ [Area (
echo %%j=%%k >>scenery.cfg
) else (
echo %%j.%%k >>scenery.cfg
)
)
)
)
echo.
echo Section supprimee
echo.
exit
:err
echo.
echo Impossible de trouver la section
echo.
Bonsoir,
Désoler pour ma réponse tardive.
Nous vous remercions infiniment l'équipe et moi pour tout votre travail, et votre script fonctionne à merveille !
Grâce à vous nous allons enfin pouvoir finir notre projet bloqué depuis un moment.
Merci encore pour votre patience et votre aide !
Cordialement
Pilotepro
Désoler pour ma réponse tardive.
Nous vous remercions infiniment l'équipe et moi pour tout votre travail, et votre script fonctionne à merveille !
Grâce à vous nous allons enfin pouvoir finir notre projet bloqué depuis un moment.
Merci encore pour votre patience et votre aide !
Cordialement
Pilotepro