Question
doublons
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
C'est ce que tu fais déjà en précisant l'encodage à chaque manipulation de fichier.
Ok, pourquoi pas, je m'y prends comment ?Dans ce cas, je te conseille de construire une chaîne de production utilisant le même encodage.
Je n'avais pas tout ton code sous les yeux.
6ratgus écrit:
Oui, il faut s'en assurer.Sinon utiliser ceci :peut être pourrais tu confirmé l'origine du problème en utilisant un éditeur du type Notepad++ qui te permet de visualisé les caractères spéciaux
[code:1]
$T1=[byte[]][char[]]$s1
$T2=[byte[]][char[]]$s2
Compare $T1 $T2
[/code:1]
Wagga écrit:
Quelques fois avec PS on perd un temps fou sur ce genre de comportement.Je vois vraiment pas ou j'ai fauté pour que Get-unique me renvoi 2 fois la même ligne
Wagga écrit:
Si tes données en entrées sont correctes, on peut penser que le traitement les modifie.un get-content monFichier | get-unique.
Je n'ai plus de doublons dans ce cas là (j'ai pas compris pourquoi, mais bon).
As-tu essayé avec :
[code:1]
get-content monFichier | get-unique -AsString
[/code:1]
Est-ce le même résultat ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Damien GRECOURT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 11
- Remerciements reçus 0
C'est mon éditeur préféré, aucune anomalie de ce côté.peut être pourrais tu confirmé l'origine du problème en utilisant un éditeur du type Notepad++ qui te permet de visualisé les caractères spéciaux
=> fichier attaché.ou sinon si c'est possible déposé ici temporairement les fichiers généré pour que l'on puisse les contrôlés.
J'ai du changer l'extension .log en .txt pour l'attacher.
@Laurent Dardenne
Les fichiers de scripts comporte des informations confidentielles, c'est pourquoi je ne l'ai pas mis à disposition.C'est ce que tu fais déjà en précisant l'encodage à chaque manipulation de fichier.
Je n'avais pas tout ton code sous les yeux.
Pour le reste, je vais essayer et vous donner le résultat dès que possible.
La pièce jointe MagicBox.txt est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Wagga écrit:
Peut-on en déduire qu'ici le fichier est correctement trié ?un get-content monFichier | get-unique.
Je n'ai plus de doublons dans ce cas là (j'ai pas compris pourquoi, mais bon).
[edit]
Peut être que les 3 lignes d'entête en début de fichier influence le traitement ?
[code:1]
DeviceId MacAddress Interface
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 6/03/14 11:45
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Damien GRECOURT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 11
- Remerciements reçus 0
Donc, si je ne me trompe pas, il ne tient pas compte des entêtes.
Contenu du tableau $MagicBox
[code:1]@{DeviceId=SW-3F65-38; MacAddress=0000.0c07.ac0a; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0000.0c07.ac0b; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0000.0c07.ac0c; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0000.0c07.ac0d; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0000.0c07.ac0e; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0003.560e.15ca; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0015.5d3f.6500; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0015.5d3f.6501; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0015.5d3f.6502; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=0015.5d3f.6503; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=001a.643d.bd04; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=001a.643d.bd2b; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=001a.64ef.f3f8; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=1cdf.0f46.e5ba; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=2c41.38b7.ab60; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=588d.0979.c80b; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=588d.0979.c840; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=5cf3.fcd4.a925; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=7071.bcbe.b532; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=d8d3.855d.a58c; Interface=1} @{DeviceId=SW-3F65-38; MacAddress=d8d3.855d.a58d; Interface=1} @{DeviceId=SW-3F65-40; MacAddress=0000.0c07.ac0a; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0000.0c07.ac0b; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0000.0c07.ac0c; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0000.0c07.ac0d; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0000.0c07.ac0e; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0003.560e.15ca; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0015.5d3f.6500; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0015.5d3f.6501; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0015.5d3f.6502; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0015.5d3f.6503; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=001a.643d.bd04; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=001a.643d.bd2b; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=001a.64ef.f3f8; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=0050.9917.d918; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=1cdf.0f46.e5ba; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=2c41.38b7.ab60; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=588d.0979.c80c; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=588d.0979.c840; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=5cf3.fcd4.a925; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=7071.bcbe.b532; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=d8d3.855d.a58c; Interface=Fa0/1} @{DeviceId=SW-3F65-40; MacAddress=d8d3.855d.a58d; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0000.0c07.ac0a; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0000.0c07.ac0b; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0000.0c07.ac0c; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0000.0c07.ac0d; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0000.0c07.ac0e; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0003.560e.15ca; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0015.5d3f.6500; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0015.5d3f.6501; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0015.5d3f.6502; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0015.5d3f.6503; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=001a.643d.bd04; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=001a.643d.bd2b; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=001a.64ef.f3f8; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=0050.9917.d918; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=1cdf.0f46.e5ba; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=2c41.38b7.ab60; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=588d.0979.c807; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=588d.0979.c840; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=5cf3.fcd4.a925; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=7071.bcbe.b532; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=d8d3.855d.a58c; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=d8d3.855d.a58d; Interface=Fa0/1} @{DeviceId=SW-3F65-41; MacAddress=588d.0979.c807; Interface=Fa0/1} @{DeviceId=SW-B-3F65-107; MacAddress=0003.560e.15ca; Interface=Gi0/19} @{DeviceId=SW-B-3F65-107; MacAddress=0015.5d3f.6500; Interface=Gi0/1} @{DeviceId=SW-B-3F65-107; MacAddress=0015.5d3f.6501; Interface=Gi0/4} @{DeviceId=SW-B-3F65-107; MacAddress=0015.5d3f.6502; Interface=Gi0/1} @{DeviceId=SW-B-3F65-107; MacAddress=0015.5d3f.6503; Interface=Gi0/1} @{DeviceId=SW-B-3F65-107; MacAddress=001a.643d.bd04; Interface=Gi0/15} @{DeviceId=SW-B-3F65-107; MacAddress=001a.643d.bd2b; Interface=Gi0/23} @{DeviceId=SW-B-3F65-107; MacAddress=001a.64ef.f3f8; Interface=Gi0/17} @{DeviceId=SW-B-3F65-107; MacAddress=0021.1b6c.50c0; Interface=Gi0/7} @{DeviceId=SW-B-3F65-107; MacAddress=0021.1b6c.50c1; Interface=Gi0/7} @{DeviceId=SW-B-3F65-107; MacAddress=0050.9917.d918; Interface=Gi0/11} @{DeviceId=SW-B-3F65-107; MacAddress=1cdf.0f46.e5ba; Interface=Gi0/24} @{DeviceId=SW-B-3F65-107; MacAddress=2c41.38b7.ab60; Interface=Gi0/13} @{DeviceId=SW-B-3F65-107; MacAddress=4083.de1e.be09; Interface=Gi0/21} @{DeviceId=SW-B-3F65-107; MacAddress=5cf3.fcd4.a925; Interface=Gi0/9} @{DeviceId=SW-B-3F65-107; MacAddress=7071.bcbe.b532; Interface=Gi0/6} @{DeviceId=SW-B-3F65-107; MacAddress=b8be.bfdf.3001; Interface=Gi0/12} @{DeviceId=SW-B-3F65-107; MacAddress=b8be.bfdf.3040; Interface=Gi0/12} @{DeviceId=SW-B-3F65-107; MacAddress=d8d3.855d.3674; Interface=Gi0/2} @{DeviceId=SW-B-3F65-107; MacAddress=d8d3.855d.a58c; Interface=Gi0/1} @{DeviceId=SW-B-3F65-107; MacAddress=d8d3.855d.a58d; Interface=Gi0/3} @{DeviceId=SW-B-3F65-107; MacAddress=1cdf.0f46.e5ba; Interface=Gi0/24} @{DeviceId=SW-B-3F65-107; MacAddress=1cdf.0f46.e5ba; Interface=Gi0/24}[/code:1]
Pour le trie, j'avais initialement placer un sort avant le get-unique, mais j'avais le même résultat.
Je réessaye de suite.<br><br>Message édité par: Wagga, à: 6/03/14 12:08
Connexion ou Créer un compte pour participer à la conversation.
- Damien GRECOURT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 11
- Remerciements reçus 0
[code:1]$MagicBox | sort-object -Property DeviceId,Interface,MacAddress | Get-unique -asString | ? {($_.DeviceId -eq $DeviceId) -and ($_.MacAddress -eq $MacAddress)} | % {
$Interface = $_.Interface
Write-host \"Search Result : $DeviceId $IpAddress $MacAddress $Interface\"
$DeviceView += addHashToDeviceView -DeviceId $DeviceId -IpAddress $IpAddress -MacAddress $MacAddress -Interface $Interface
}[/code:1]
Merci pour ta remarque sur le tri avant l'utilisation de Get-unique.
Initialement j'utilisais bêtement sort-object.
Suite à ta remarque, j'ai choisi de trier sur les champs.
[code:1]sort-object -Property DeviceId,Interface,MacAddress[/code:1]
Merci Laurent.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
De rien.Merci Laurent.
J'allais justement te demander de vérifier ces lignes, car on ne sait pas ce qu'est $MagicBox ? Un tableau de PSObject ou un tableau de chaîne ?
Et s'il n'y a pas de nom de propriétés sur Sort-Object :
En regardant le code du cmdlet, à priori il s'agit du membre adapté DefaultKeyPropertySet. Mais s'il n'existe pas ...If you do not specify properties, the cmdlet sorts based on default properties for the object type.
je ne suis pas allé si loin
Sinon Sort-Object propose la paramètre -Unique ce qui simplifierait ton code.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- doublons