Question Vérifier une valeur parmis plusieurs

Plus d'informations
il y a 1 mois 2 jours - il y a 1 mois 2 jours #30024 par gregmurf
Bonjour à tous,
je m'en remet à vous car je n'arrive pas à vérifier si une valeur est déjà comprise dans une clé de registre.
C'est bête, je sais, mais je sèche.
J'essaie de vérifier si la donnée "c:\oracle" est déjà présente dans la valeur chaine "Path" contenue dans "Ordinateur\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" (pour ne pas l'ajouter si elle y est)
Voici ce que j'ai essayé:
$oldpath = (Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path | Where-Object {$_.Value -eq "c:\oracle"}
if (!($oldpath -match "c:\oracle")) {
"no"
} else {
"yes"
}
Et voici l'erreur:
analyse de "c:\oracle" - Séquence d'échappement \o non reconnue.
Il n'aime pas le backslash ...
J'ai aussi essayé comme ceci:
Set-Location -Path Env:\
if (!(Get-ChildItem Path | Where-Object {$_.Value -match "c:\oracle"})) {
    "no"
} else {
    "yes"
}
Mais même erreur.
Si je remplace le -match par -eq, il ne me trouve rien (alors que la donnée s'y trouve bien).

Help...

Powershell: la vie est belle :)
Dernière édition: il y a 1 mois 2 jours par gregmurf.

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

Plus d'informations
il y a 1 mois 2 jours #30026 par Laurent Dardenne
Salut
il faut échapper les métacaractères :
$oldpath = (Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path
$oldpath -match "C:\Windows"
#False
$oldpath -match "C:\\Windows"
#True

Tutoriels PowerShell

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

Plus d'informations
il y a 6 jours 5 heures #30085 par gregmurf
C'est ce qu'il me fallait, merci beaucoup.

Powershell: la vie est belle :)

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

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