Bonjour à tous,
je cherche à supprimer ou remplacer ou modifier une ligne dans mon fichier dont je connais le numéro de ligne, comment pourrais faire cela avec un ficher batch svp?
je vous joins mon programme, je pensais qu'avec ca je pouvais remplacer la ligne 64 par ce que l'utilisateur rentre, mais la ligne s'ajoute effectivement a la ligne numéro 64 mias l'ancienne ligne est décaler a la ligne numéro 65, et si je ré executez le programme je décale encore et encore et tout ce cumule, quelqu'un aurait une idée svp?
merci à vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 rem @echo off setlocal EnableDelayedExpansion ::::::::::::: DEBUT MESSAGE POUR L'UTILISATEUR ::::::::::::: set /p NouvelVal=Entrez la fr‚quence que vous souhaitez entre 4Mhz et 24 MHz: ::::::::::::: FIN MESSAGE POUR L'UTILISATEUR ::::::::::::: ::::::::::::: DEBUT VARIABLE A MODIFIER ::::::::::::: REM Correspond au nom de fichier avec une ligne à modifier (laisser les guillemets) set file="system_stm32f4xx.c" REM Correspond au nom du fichier tamporaire(laisser les guillemets) set file_tmp= "resultat.c" REM Correspond à la ligne recherchée (REGEX ; laisser les guillemets) set file_line_word="#define HSE_VALUE ((uint32_t)" REM Correspond à la nouvelle ligne (pas besoin de guillemets) set file_line_replace=#define HSE_VALUE ((uint32_t)%NouvelVal%000000) ::::::::::::: FIN VARIABLE A MODIFIER ::::::::::::: set /a "compt=0" Rem correspond a la ligne de la variable a modifié set /a "varlim=64" if exist %file_tmp% del %file_tmp% for /f "tokens=1 delims=" %%i in ('type %file%') do ( set line="%%i" set /a "compt+=1" set /a Test=!varlim! - !compt!" echo !Test! |findstr /b "0" if "!errorlevel!"=="0" echo !file_line_replace!>>%file_tmp% ) else ( echo %%i>>%file_tmp% ) ) del /F /Q %file% rename %file_tmp% %file% echo. echo Modification termin‚e ! goto :quit :quit echo. pause>nul | echo Appuyez sur une touche pour quitter le script... exit
Partager