Supprimer des lignes identiques avec un bat

galelitobzh Messages postés 1 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
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
Configuration: Windows XP
Firefox 3.6

4 réponses

  1. cs-bilou Messages postés 836 Statut Membre 164
     
    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
  2. cs-bilou Messages postés 836 Statut Membre 164
     
    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
  3. gaelitobzh
     
    Merci

    je teste au plus vite

    @+
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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