Supprimer des lignes identiques avec un bat

[Fermé]
Signaler
Messages postés
1
Date d'inscription
mardi 2 février 2010
Statut
Membre
Dernière intervention
2 février 2010
-
Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
-
Bonjour,

je cherche à supprimer des lignes répétées dans un fichier texte avec un batch

exemple fichier source:
QI-500801
48.30
2.6
P265GH
144.90
PX -891.8500, 2791.2449, -1201.8
QI-500801
48.30
2.6
P265GH
144.90
PX -595.7123, 2495.1071, -1201.8
QI-500801
48.30
2.6
P265GH
144.90
PX -122.1359, 2495.1071, -1201.8


Résultat souhaité:


QI-500801
48.30
2.6
P265GH
144.90
PX -891.8500, 2791.2449, -1201.8
PX -595.7123, 2495.1071, -1201.8
PX -122.1359, 2495.1071, -1201.8



Merci

4 réponses

Messages postés
769
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
166
Tien tu peux faire un truc comme ça:

@echo off
setlocal enableDelayedExpansion
set ligneNbr=1
for /f "delims=""" %%i in ('type "In.txt"') do (
	set copie=1
	if not exist "Out.txt" echo %%i>>Out.txt
	for /f "delims=""" %%j in ('type "Out.txt"') do if %%j==%%i set copie=0
	if !copie!==1 echo %%i>>Out.txt)
pause


Bilou.
Messages postés
769
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
24 février 2011
166
Au passage la ligne set ligneNbr=1 ne sert a rien, c'est parce que j'étais partie sur un truc au début.
Ce qui donne:
@echo off
setlocal enableDelayedExpansion
for /f "delims=""" %%i in ('type "In.txt"') do (
	set copie=1
	if not exist "Out.txt" echo %%i>>Out.txt
	for /f "delims=""" %%j in ('type "Out.txt"') do if %%j==%%i set copie=0
	if !copie!==1 echo %%i>>Out.txt)
pause


Bilou.
Merci

je teste au plus vite

@+
Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
5 333
hello
C:>@echo off
setlocal enableDelayedExpansion
copy NUL out.txt > NUL
for /f "delims=" %%a in ('type source.txt') do (
findstr /l /c:"%%a" out.txt  > NUL
if !errorlevel! EQU 1 echo %%a >> out.txt
)