Question commande -match

Plus d'informations
il y a 13 ans 9 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 9 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 9 mois #12067 par Laurent Dardenne
Réponse de Laurent Dardenne 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 9 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 9 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 9 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.053 secondes
Propulsé par Kunena