Nous allons voir comment trier puis supprimer les doublons dans un fichier texte avec un script Powershell.
Avant de commencer et si vous n’êtes pas encore à l’aise en Powershell je vous invite à consulter les articles suivants:
Exécuter un script en PowerShell
Considérons un fichier texte nommé AllDomainComputers.txt contenant la liste de machines suivantes:
Station14
Station04
Station01
Station24
Station01
Nous souhaitons supprimer les doublons puis trier la liste par ordre alphabétique tout en conservant la liste original.
Pour cela nous créons un fichier de script Powershell MonScript.PS1contenant le script suivant:
$OriginalFile = "C:\AllDomainComputers.txt" $DestinationFile = "C:\AllDomainComputers_NEW.txt" Get-Content $OriginalFile | Sort-Object | Get-Unique > $DestinationFile
Puis nous l’exécutons depuis une ligne de commande:
PowerShell c:\Monscript.PS1
On peut constater que le nouveau fichier AllDomainComputers_NEW.txt contient bien un liste triée et sans aucun doublons:
Station01
Station04
Station14
Station24
Nous aurions pu utiliser les Alias afin de simplifier le code, ce qui aurait donné :
$OriginalFile = "C:\AllDomainComputers.txt" $DestinationFile = "C:\AllDomainComputers_NEW.txt" GC $OriginalFile | Sort | GU > $DestinationFile
Pour trier la liste dans l’ordre inverse il suffit d’utiliser la propriété descending :
$OriginalFile = "C:\AllDomainComputers.txt" $DestinationFile = "C:\AllDomainComputers_NEW.txt" GC $OriginalFile | Sort -descending | GU > $DestinationFile
On obtient ainsi la liste suivante :
Station24
Station14
Station04
Station01