Question
commande -match
- heyraud
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 20
- Remerciements reçus 0
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]
[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.
- heyraud
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 20
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 9 mois #12067
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:commande -match
lsda26 écrit:
Si, mais avant de proposer une solution, il faut connaitre le contexte, le comportement souhaité et le code que tu utilises actuellement.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é
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
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]
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.
- heyraud
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 20
- Remerciements reçus 0
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?
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.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 13 ans 9 mois #12077
par SiSMik
Réponse de SiSMik sur le sujet Re:commande -match
lsda26 écrit:
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 !
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- commande -match