Question Rechercher un mot dans une variable

Plus d'informations
il y a 14 ans 11 mois #9443 par FO
Bonjour à tous,

Je vous demande un peu d'aide pour un petit problème.
J'éxécute une commande qui me donne un statut sur l'activation d'office 2010. Je mets le résultat de cette commande dans une variable.
Ensuite je souhaiterai pouvoir faire une recherche sur certains mots. Je sais faire une recherche pour un .TXT mais pas pour une variable.

Ci-dessous, le code en question :

[code:1]$StatutOffice = cmd /c cscript \"C:\Program Files\Microsoft Office\Office14\ospp.vbs\" /dstatus[/code:1]

Lorsque que j'éxécute ma variable j'ai le résultat suivant :

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

---Processing

SKU ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
LICENSE NAME: Office 14, OfficeVisioPrem-MAK edition
LICENSE DESCRIPTION: Office 14, RETAIL channel
LICENSE STATUS: ---LICENSED---
ERROR CODE: 0 as licensed
Last 5 characters of installed product key: XXXXX
SKU ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

LICENSE NAME: Office 14, OfficeProPlus-MAK edition
LICENSE DESCRIPTION: Office 14, RETAIL channel
LICENSE STATUS: ---LICENSED---
ERROR CODE: 0 as licensed
Last 5 characters of installed product key: XXXXX

---Exiting

Je souhaiterai faire une recherche sur le terme \"LICENSED\" avec en sortie $True (présent) ou $False (non présent) afin d'éxécuter ou non le reste de mon code.

Merci d'avance pour votre aide

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

Plus d'informations
il y a 14 ans 11 mois #9446 par Laurent Dardenne
Benjy écrit:

Je souhaiterai faire une recherche sur le terme \"LICENSED\"

Si la présence d'un seul terme \"LICENSED\" suffit à valider ta condition, tu peux utiliser l'opérateur -Match.
Et ici que le texte soit dans un fichier ou dans une variable l'usage est le même :
[code:1]$s=@\"
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

---Processing

SKU ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
LICENSE NAME: Office 14, OfficeVisioPrem-MAK edition
LICENSE DESCRIPTION: Office 14, RETAIL channel
LICENSE STATUS: ---LICENSED---
ERROR CODE: 0 as licensed
Last 5 characters of installed product key: XXXXX
SKU ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
LICENSE NAME: Office 14, OfficeProPlus-MAK edition
LICENSE DESCRIPTION: Office 14, RETAIL channel
LICENSE STATUS: ---LICENSED---
ERROR CODE: 0 as licensed
Last 5 characters of installed product key: XXXXX

---Exiting
\"@
$s -match \"Licensed\"
#True[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 14 ans 10 mois #9449 par FO
Réponse de FO sur le sujet Re:Rechercher un mot dans une variable
Merci Laurent!

C'est éxactement ça.

Afin d'améliorer la recherche, est-il possible de dire si je trouve le terme suivant : Office 14, OfficeProPlus-MAK edition alors je cherche ce terme mais juste 2 ligne en dessous pour éviter des erreurs si il y a plusieurs produits installés.

[code:1]If ($variable -eq $True)
{
je cherche le terme licensed juste 2 lignes en dessous (où il y a LICENSE STATUS)}[/code:1]

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

Plus d'informations
il y a 14 ans 10 mois #9451 par Laurent Dardenne
Est-ce que ton script vbs contient des paramètres qui permmettraient de faciliter ton analyse ?

Sinon, si le texte émis a tjr la même structure, il faut réussir à parser ceci :
[code:1]
SKU ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
...
Last 5 characters of installed product key: XXXXX
[/code:1]
Ensuite la création d'objet peut être envisagée.
[Edit]
Voir ce post .<br><br>Message édité par: Laurent Dardenne, à: 21/04/11 23:03

Tutoriels PowerShell

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

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