Supprimer des lignes identiques avec un bat

Fermé
galelitobzh Messages postés 1 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 2 février 2010 - 2 févr. 2010 à 14:38
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 4 févr. 2010 à 09:11
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
A voir également:

4 réponses

cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
3 févr. 2010 à 15:11
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.
0
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
3 févr. 2010 à 17:56
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.
0
Merci

je teste au plus vite

@+
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
4 févr. 2010 à 09:11
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
)
0