Question commande -match

Plus d'informations
il y a 13 ans 10 mois #12065 par heyraud
Réponse de heyraud sur le sujet Re:commande -match
Bon sans savoir pourquoi, maintenant celà semble fonctionner avec la syntax suivant:
[code:1]
foreach ($Service in $ListeServices)
{
If ($ListeError -match \"« $Service »\"«»)
{
Write-Host \"Le service nommé \"\"$Service\"\" n'est pas installé sur la machine \"\"$_\"\" \"
}
}[/code:1]

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

Plus d'informations
il y a 13 ans 10 mois #12066 par heyraud
Réponse de heyraud sur le sujet Re:commande -match
N'y a t-il pas un moyen plus propre pour traiter les message d'erreur? du genre si erreur x alors service pas installé

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

Plus d'informations
il y a 13 ans 10 mois #12067 par xyz
Réponse de xyz sur le sujet Re:commande -match
lsda26 écrit:

N'y a t-il pas un moyen plus propre pour traiter les message d'erreur? du genre si erreur x alors service pas installé

Si, mais avant de proposer une solution, il faut connaitre le contexte, le comportement souhaité et le code que tu utilises actuellement.

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 10 mois #12071 par SiSMik
Réponse de SiSMik sur le sujet Re:commande -match
Une piste comme une autre...

Tu fais d'abord un tableau qui contient les services qui doivent être installés, et ensuite tu vérifies en checkant les services un par un


[code:1]$liste = @('dns','dfs','dfsr','adfse')
Get-Service | % {
if ( $liste -contains $_.name ) { $_.name \"Installed\" }
else { $_.name \"Not Installed\" }
}
[/code:1]

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

Plus d'informations
il y a 13 ans 10 mois #12076 par heyraud
Réponse de heyraud sur le sujet Re:commande -match
Effectivement je n'avais traité le problème sous cet angle! Et puis je ne savais pas manipuler le -contains qui pour moi était idem que -match

Moi j'utilisé un get-service -name $service couplé à un foreeach pour passer tous les services dans la liste. Du coups je lancais 2 fois la commande get-service! une fois pour en redirigeant les erreur pour ne pas les afficher et une seconde fois en redirigeant les erreur vers la console afin de les stocker dans $listeerror. Puis je traité comme précedement $listeerror pour trouver ceux qui ne sont pas installés.

Mais ton bout de code m'évite de scruter le $listeerror! :)

Questions tout de même:
- que signifie et àquoi sertle % après le pipe?
- Est-on obligé de créer une hashtable $liste?

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

Plus d'informations
il y a 13 ans 10 mois #12077 par SiSMik
Réponse de SiSMik sur le sujet Re:commande -match
lsda26 écrit:

Questions tout de même:
- que signifie et àquoi sertle % après le pipe?
- Est-on obligé de créer une hashtable $liste?


le % est l'alias de Foreach-Object et $_ renvoit la valeur récupérée dans le pipe c'est comme si je faisais
[code:1]$a = Get-Service
Foreach ( $b in $a ) {
$b.name
}[/code:1]

Et non tu peux par exemple stocker les services dans un fichier, dans une variable string, libre à toi, laisse ton imagination faire le boulot !

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

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