Question
Méthode contains : comment l'utiliser ? (Résolu)
- TIti
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 16 ans 3 mois #1399
par TIti
Méthode contains : comment l'utiliser ? (Résolu) a été créé par TIti
Bonjour à vous,
J'ai honte ... mais je demande
Je ne comprends pas comment utiliser la méthode Contains
[code:1][string]$a=arp -a
### ou arp -a contient (entre autre) 00-13-72-f9-ef-90
[string]$b=(get-content c:\fichier.txt)
### ou fichier.txt contient 00-13
$b.Contains($a)
### le résultat est False[/code:1]
Et là ... l'échec ...
Pourquoi le résultat n'est il pas true ??
Merci pour votre aide
Message édité par: Berurier, à: 2/01/08 11:27<br><br>Message édité par: Arnaud, à: 8/01/08 17:21
J'ai honte ... mais je demande
Je ne comprends pas comment utiliser la méthode Contains
[code:1][string]$a=arp -a
### ou arp -a contient (entre autre) 00-13-72-f9-ef-90
[string]$b=(get-content c:\fichier.txt)
### ou fichier.txt contient 00-13
$b.Contains($a)
### le résultat est False[/code:1]
Et là ... l'échec ...
Pourquoi le résultat n'est il pas true ??
Merci pour votre aide
Message édité par: Berurier, à: 2/01/08 11:27<br><br>Message édité par: Arnaud, à: 8/01/08 17:21
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 16 ans 3 mois #1400
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:Méthode contains
Salut berrurier, et bonne année
En effet, ta syntaxe me semble correcte. Seulement la méthode \"contains\" va tester si ton fichier contient tout le contenu de $a (sans exception, et non pas juste l'adresse MAC), es-tu bien sur de vouloir faire cela ?
Si j'ai bien compris, tu devrais plutot faire un traitement sur la variable $a pour qu'elle se compose uniquement de l'adresse MAC !!!
Pour info : la methode \"Contains\" Retourne une valeur qui indique si (l'intégralité de) l'objet String spécifié apparaît dans cette chaîne.<br><br>Message édité par: robin, à: 2/01/08 12:22
En effet, ta syntaxe me semble correcte. Seulement la méthode \"contains\" va tester si ton fichier contient tout le contenu de $a (sans exception, et non pas juste l'adresse MAC), es-tu bien sur de vouloir faire cela ?
Si j'ai bien compris, tu devrais plutot faire un traitement sur la variable $a pour qu'elle se compose uniquement de l'adresse MAC !!!
Pour info : la methode \"Contains\" Retourne une valeur qui indique si (l'intégralité de) l'objet String spécifié apparaît dans cette chaîne.<br><br>Message édité par: robin, à: 2/01/08 12:22
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 16 ans 3 mois #1401
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Méthode contains
En effet, il faut qu'au moins une des deux chaînes soit exactement la chaîne qu'on recherche:
[code:1]
PS> $cherche = \"an\"
PS> $dans = \"bonne année\"
PS> $dans.contains($cherche)
True[/code:1]
En l'occurrence, ni $a ni $b ne contiennent uniquement l'adresse MAC. Il faut donc, comme suggéré par Robin, extraire cette adresse d'une des deux chaînes avant de pouvoir vérifier sa présence dans l'autre chaîne.
Si, comme indiqué dans le commentaire du code, le fichier ne contient qu'une partie de l'adresse (les 4 premiers caractères), c'est cette partie-là que j'extraierais pour ensuite vérifier si elle est présente dans $a. La façon de procéder pour extraire ce bout de chaîne dépend fortement de la structure de la chaîne. Donne-nous un ou plusieurs exemples si tu veux qu'on t'aide pour ça.
Bonne année,
Janel<br><br>Message édité par: janel, à: 2/01/08 13:45
[code:1]
PS> $cherche = \"an\"
PS> $dans = \"bonne année\"
PS> $dans.contains($cherche)
True[/code:1]
En l'occurrence, ni $a ni $b ne contiennent uniquement l'adresse MAC. Il faut donc, comme suggéré par Robin, extraire cette adresse d'une des deux chaînes avant de pouvoir vérifier sa présence dans l'autre chaîne.
Si, comme indiqué dans le commentaire du code, le fichier ne contient qu'une partie de l'adresse (les 4 premiers caractères), c'est cette partie-là que j'extraierais pour ensuite vérifier si elle est présente dans $a. La façon de procéder pour extraire ce bout de chaîne dépend fortement de la structure de la chaîne. Donne-nous un ou plusieurs exemples si tu veux qu'on t'aide pour ça.
Bonne année,
Janel<br><br>Message édité par: janel, à: 2/01/08 13:45
Connexion ou Créer un compte pour participer à la conversation.
- TIti
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 16 ans 3 mois #1402
par TIti
Réponse de TIti sur le sujet Re:Méthode contains
Merci Janel et bonne année à toi aussi,
En fait, j'ai bien du mal à extraire proprement ma donnée.
Les objects WMI de type Network ne sont pas adaptés à la récupération des adresses mac (inutilisables sur les switchs par exemple). Je suis donc obligé d'utiliser la commande ARP -a.
Et là ... le drame !
Mais là, tu viens de m'expliquer comment utiliser proprement la méthode contains.
Donc ... je fais au mieux et je reviens
Merci beaucoup !!
En fait, j'ai bien du mal à extraire proprement ma donnée.
Les objects WMI de type Network ne sont pas adaptés à la récupération des adresses mac (inutilisables sur les switchs par exemple). Je suis donc obligé d'utiliser la commande ARP -a.
Et là ... le drame !
Mais là, tu viens de m'expliquer comment utiliser proprement la méthode contains.
Donc ... je fais au mieux et je reviens
Merci beaucoup !!
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 16 ans 3 mois #1412
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Méthode contains
Si ça peut servir, voici un bout de code qui devrait te permettre d'exploiter au mieux les adresses retournées par arp -a :
[code:1]
$a = arp -a
$adresses = $a[3..($a.length-1)] | select @{n=\"IP\";e={$_.substring(2,15)}}, @{n=\"MAC\";e={$_.substring(24,17
)}}, @{n=\"Type\";e={$_.substring(46)}}
[/code:1]
Tu peux ensuite utiliser le tableau $adresses pour, par exemple, faire une recherche sur les adresses MAC qui correspondent à un motif particulier :
[code:1]
$adresses | where {$_.MAC -match \"01-00\"}
IP MAC Type
-- --- ----
224.0.0.22 01-00-5e-00-00-16 static
224.0.0.252 01-00-5e-00-00-fc static
239.255.255.250 01-00-5e-7f-ff-fa static
[/code:1]
A partir de là, il te reste à isoler le bout d'adresse MAC dans fichier.txt pour pouvoir faire la recherche qui t'intéresse.
Janel
[code:1]
$a = arp -a
$adresses = $a[3..($a.length-1)] | select @{n=\"IP\";e={$_.substring(2,15)}}, @{n=\"MAC\";e={$_.substring(24,17
)}}, @{n=\"Type\";e={$_.substring(46)}}
[/code:1]
Tu peux ensuite utiliser le tableau $adresses pour, par exemple, faire une recherche sur les adresses MAC qui correspondent à un motif particulier :
[code:1]
$adresses | where {$_.MAC -match \"01-00\"}
IP MAC Type
-- --- ----
224.0.0.22 01-00-5e-00-00-16 static
224.0.0.252 01-00-5e-00-00-fc static
239.255.255.250 01-00-5e-7f-ff-fa static
[/code:1]
A partir de là, il te reste à isoler le bout d'adresse MAC dans fichier.txt pour pouvoir faire la recherche qui t'intéresse.
Janel
Connexion ou Créer un compte pour participer à la conversation.
- TIti
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 16 ans 3 mois #1420
par TIti
Réponse de TIti sur le sujet Re:Méthode contains
Bonjour et merci,
Oui, ça va servir
J'avais beau chercher, je ne trouvais pas la solution.
Donc ... merci encore pour le coup de main !
Beru
Oui, ça va servir
J'avais beau chercher, je ne trouvais pas la solution.
Donc ... merci encore pour le coup de main !
Beru
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.072 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Méthode contains : comment l'utiliser ? (Résolu)