Question doublons

Plus d'informations
il y a 12 ans 2 semaines #17129 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:doublons
Wagga écrit:

Dans ce cas, je te conseille de construire une chaîne de production utilisant le même encodage.

Ok, pourquoi pas, je m'y prends comment ?

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.
6ratgus écrit:

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

Oui, il faut s'en assurer.Sinon utiliser ceci :
[code:1]
$T1=[byte[]][char[]]$s1
$T2=[byte[]][char[]]$s2
Compare $T1 $T2
[/code:1]
Wagga écrit:

Je vois vraiment pas ou j'ai fauté pour que Get-unique me renvoi 2 fois la même ligne

Quelques fois avec PS on perd un temps fou sur ce genre de comportement.
Wagga écrit:

un get-content monFichier | get-unique.
Je n'ai plus de doublons dans ce cas là (j'ai pas compris pourquoi, mais bon).

Si tes données en entrées sont correctes, on peut penser que le traitement les modifie.
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.

Plus d'informations
il y a 12 ans 2 semaines #17130 par Damien GRECOURT
Réponse de Damien GRECOURT sur le sujet Re:doublons
@6ratgus

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

C'est mon éditeur préféré, aucune anomalie de ce côté.

ou sinon si c'est possible déposé ici temporairement les fichiers généré pour que l'on puisse les contrôlés.

=> fichier attaché.
J'ai du changer l'extension .log en .txt pour l'attacher.
@Laurent Dardenne

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.

Les fichiers de scripts comporte des informations confidentielles, c'est pourquoi je ne l'ai pas mis à disposition.

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

<br><br>Message édité par: Wagga, à: 6/03/14 11:10
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 2 semaines #17131 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:doublons
En relisant la doc de Get-Unique les données doivent être triées auparavant, et le code du cmdlet effectivement compare l'objet courant avec le précédent, puis le mémorise.
Wagga écrit:

un get-content monFichier | get-unique.
Je n'ai plus de doublons dans ce cas là (j'ai pas compris pourquoi, mais bon).

Peut-on en déduire qu'ici le fichier est correctement trié ?
:silly:
[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.

Plus d'informations
il y a 12 ans 2 semaines #17132 par Damien GRECOURT
Réponse de Damien GRECOURT sur le sujet Re:doublons
Je me suis égaré. Le fichier attaché est la vue de mon tableau avec toutes ses données. Mais le Get-unique qui m'intéresse est fait sur les objets qu'il contient.
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.

Plus d'informations
il y a 12 ans 2 semaines #17133 par Damien GRECOURT
Réponse de Damien GRECOURT sur le sujet Re:doublons
Problème résolu :laugh:

[code:1]$MagicBox | sort-object -Property DeviceId,Interface,MacAddress | Get-unique -asString | ? {($_.DeviceId -eq $DeviceId) -and ($_.MacAddress -eq $MacAddress)} | % {
$Interface = $_.Interface
Write-host \&quot;Search Result : $DeviceId $IpAddress $MacAddress $Interface\&quot;
$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.

Plus d'informations
il y a 12 ans 2 semaines #17134 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:doublons
Wagga écrit:

Merci Laurent.

De rien.
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 :

If you do not specify properties, the cmdlet sorts based on default properties for the object type.

En regardant le code du cmdlet, à priori il s'agit du membre adapté DefaultKeyPropertySet. Mais s'il n'existe pas ...
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.

Temps de génération de la page : 0.057 secondes
Propulsé par Kunena