Question convertir Info » en type « System.int32

Plus d'informations
il y a 12 ans 4 mois #16277 par callac
Bonsoir Mathieu je sais que test-connection existe mais je n'ai pas réussi a effectuer un Ping chargé avec. J'ai trouvé beaucoup plus simple de passer par un batch pour l'effectuer. Néanmoins j'ai conscience que je pourrais améliorer cette partie en y intégrant par exemple le concept de multithread. Pour le moment je fais simple, faut le temps que je puisse grimper les marches.

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

Plus d'informations
il y a 12 ans 4 mois #16278 par callac
Matthew, pardon j'ai trop francisé ton prenom. Si je comprends bien le buffersize correspond -l du batech et le NoFragmentation doit correspondre au -f. Mais à mon niveau il est plus facile de manipuler la batch que le test-connection avec tous ces paramètres. Mais à méditer :)

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

Plus d'informations
il y a 12 ans 4 mois #16279 par Laurent Dardenne
Quelques remarques sur ton dernier code :
[code:1]
#La regex est fausse
$pattern = 'd{4,5}'
#remplacer par
$pattern = '\d{4,5}'

#La variable $Lines n'existe pas :
$chaine = ($lines)[0].context.Precontext[0]
#remplacer par
$chaine = ($line0)[0].context.Precontext[0]

#ce test est faux
if (($chaine -match $pattern) -eq \"True\"«»)
#remplacer par
if ($chaine -match $pattern)
#ou
if (($chaine -match $pattern) -eq $True)
[/code:1]
pccindo écrit:

Pour le moment je fais simple, faut le temps que je puisse grimper les marches.

+1

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 4 mois #16280 par callac
Bonjour Laurent,

J'ai effectuer les corrections:
La regex => $pattern = '\d{4,5}'
j'ai renommer la variable $Line0 en $Line
Dans le if (condition) j'ai enlevé le \"-eq \"True\")\"

L'addition ne se fait pas avec la variable $matches
if ($chaine -match $pattern)
{
$MTU = ($Matches.values -as [int]) + 28
echo $MTU
}

Il affiche en sortie standard 28 alors que je voudrais qu'il affiche 1501 (1473 + 28)

Lorsque j'affiche $Matches j'ai deux colonnes Name et Value. Ma valeur lors de l’exécution du script est dans la colonne Value (1473), donc j'utilise $Matches.Values pour effectuer l'opération. Mais ça ne fonctionne pas

Je décide donc de faire :
$Matches.values.gettype() | fl OU $Matches.gettype() | fl
Je trouve ceci : \"IsValueType: False\" .
Alors que si je fais :
$MTU.gettype() | fl
IsValueType : True

Cela veut-il bien dire que je ne peux pas typer l'objet ? Et si oui, quelles options s'offrent à moi pour pouvoir traiter l'objet $Matches?

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

Plus d'informations
il y a 12 ans 4 mois #16281 par callac
Bonjour Laurent,

J'ai effectuer les corrections:
La regex => $pattern = '\d{4,5}'
j'ai renommer la variable $Line0 en $Line
Dans le if (condition) j'ai enlevé le \"-eq \"True\")\"

L'addition ne se fait pas avec la variable $matches
if ($chaine -match $pattern)
{
$MTU = ($Matches.values -as [int]) + 28
echo $MTU
}

Il affiche en sortie standard 28 alors que je voudrais qu'il affiche 1501 (1473 + 28)

Lorsque j'affiche $Matches j'ai deux colonnes Name et Value. Ma valeur lors de l’exécution du script est dans la colonne Value (1473), donc j'utilise $Matches.Values pour effectuer l'opération. Mais ça ne fonctionne pas

Je décide donc de faire :
$Matches.values.gettype() | fl OU $Matches.gettype() | fl
Je trouve ceci : \"IsValueType: False\" .
Alors que si je fais :
$MTU.gettype() | fl
IsValueType : True

Cela veut-il bien dire que je ne peux pas typer l'objet ? Et si oui, quelles options s'offrent à moi pour pouvoir traiter l'objet $Matches?

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

Plus d'informations
il y a 12 ans 4 mois #16283 par Laurent Dardenne
pccindo écrit:

Et si oui, quelles options s'offrent à moi pour pouvoir traiter l'objet $Matches?

Comprendre ce que tu manipules.
$Matches.Value est une collection de chaînes.
isValueType concerne le type de la variable $Matches et n'a rien à voir avec les données que la collection contient.

Je t'ai proposé du code utilisant des captures nommées, ainsi $Matches.MTU pointe directement sur l'information que tu recherches.

Je pense que tu as mixer les deux codes, le résultat n'est pas très goûteux.

Utilise Write-Debug, avec $DebugPreference='Continue', pour tracer le comportement de ton code.

Tutoriels PowerShell

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

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