Bonjour à tous.
Je recherche un petit batch (ou autre script) pour supprimer automatiquement la 3ème ligne d'un ensemble de fichiers .txt contenus dans un même dossier.
Si quelqu'un pouvais me dépanner ça serai super.
Merci d'avance,
Matt
Bonjour à tous.
Je recherche un petit batch (ou autre script) pour supprimer automatiquement la 3ème ligne d'un ensemble de fichiers .txt contenus dans un même dossier.
Si quelqu'un pouvais me dépanner ça serai super.
Merci d'avance,
Matt
Salut,
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 @echo off&cls set $NoLigne=3 if exist ## del ## setlocal enabledelayedexpansion for %%a in (*.txt) do (echo # traitement de : %%a set $c=1 for /f "delims=" %%b in (%%a) do (if not !$c! equ %$NoLigne% echo %%b>>## set /a $c+=1) move ## "%%a">nul) Echo # Traitement Termin‚![]()
Merci à toi pour cette réponse.
Mais malheureusement ça ne fonctionne pas, la 3ème ligne est toujours là, malgré le message de traitement terminé.
Edit: Apparement, le batch n'aime pas qu'il y est des espaces dans le nom de mes fichiers .txt...
Donc, après avoir règlé ce problème, un autre apparait: le batch ne supprime pas que la 3ème ligne, mais apparement toutes les lignes vides également.
N'étant pas devin, les lignes vides ne sont effectivement pas traités par le script précédent.
Pour la pris en compte des lignes vides essaye ce script :
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 @echo off&cls set $NoLigne=3 if exist ## del ## setlocal enabledelayedexpansion for %%a in (*.txt) do (echo # traitement de : %%a set $c=1 for /f "tokens=1* delims=]" %%b in ('type "%%a" ^| find /V /N ""') do ( if not !$c! equ 3 (if "%%c"=="" (echo.>>##) else (echo %%c>>##)) set /a $c+=1) move ## "%%a">nul) Echo # Traitement Termin‚ pause![]()
Voilà, ça marche nickel, merci beaucoup à toi !!
Un temps précieux de gagné.
Partager