IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Filtrer un résultat [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 44
    Par défaut Filtrer un résultat
    Bonjour à tous,

    à partir de la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $k = get-childitem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' | select Name | Where-Object Name -like "*.bak"
    Write-Host $k
    j'obtiens ce résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @{Name=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-3239301616-1804600167-4028124828-
    6150.bak}
    j'aimerais supprimer ces caractères @{Name= } de mon résultat.

    Cdt,
    Elminio

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2015
    Messages : 66
    Par défaut
    > j'aimerais supprimer ces caractères @{Name= } de mon résultat.

    En fait ces caractères nous montrent une hash-table avec la clé Name.

    Voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $k = get-childitem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' | select Name | Where-Object Name -like "*.bak" | ForEach-Object {$_.name}
    mais en fait on peut optimiser un peu:

    Car

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $k = get-childitem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' | Where-Object Name -like "*.bak"
    nous donne Name et Property et dans tous les cas nous ne voulons que la valeur de name, donc pour chaque élément nous allons chercher cette valeur, donc pas besoin de sélectionner Name au milieu du pipe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $k = get-childitem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' | Where-Object Name -like "*.bak" | ForEach-Object {$_.name}

    Une autre façon de faire est celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $a = get-childitem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
    Ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $k = $a.name | where {$_ -like "*.bak"}

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 44
    Par défaut
    Bonjour mickyballadelli,

    merci pour ton aide et pour les différents exemples.

    J'essaye maintenant d'isoler la clé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $k1 = get-childitem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' | select PSChildName | Where-Object PSChildName -like "*.bak"
    Write-Host $k1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @{PSChildName=S-1-5-21-3239301616-1804600167-4028124828-6150.bak}
    Elminio

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 44
    Par défaut
    J'ai repris un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $a = get-childitem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
    $k = $a.PSChildName | where {$_ -like "*.bak"}
    Write-Host $k
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S-1-5-21-3239301616-1804600167-4028124828-6150.bak

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Filtrer le résultat d'un os.listdir pour un listbox ?
    Par PauseKawa dans le forum Tkinter
    Réponses: 3
    Dernier message: 12/01/2009, 23h12
  2. Réponses: 5
    Dernier message: 07/10/2008, 11h25
  3. Réponses: 7
    Dernier message: 08/07/2008, 19h41
  4. Filtrer le résultat
    Par nellynew dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/12/2006, 09h05
  5. Réponses: 1
    Dernier message: 13/04/2005, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo