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 :

Comment toujours renvoyer un tableau ? [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Par défaut Comment toujours renvoyer un tableau ?
    Bonjour,
    Je cherche à compter le nombre d'éléments d'une liste mais je n'obtiens pas le résultat voulu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    PS C:\> $lfic = Get-ChildItem c:\test *.sql | ForEach-Object -process {$_.FullName}
    PS C:\> $lfic
    C:\_support\frp\profilRIBA.sql
    PS C:\> $lfic.count
    PS C:\>
    PS C:\> $lfic = Get-ChildItem c:\test *.xml | ForEach-Object -process {$_.FullName}
    PS C:\> $lfic
    C:\_support\frp\MT101.xml
    C:\_support\frp\Transco.xml
    PS C:\> $lfic.count
    2
    PS C:\>
    Pourquoi lorsque ma liste ne contient qu'un élément, j'obtiens le même résultat que lorsqu'elle est vide, alors que lorsque j'ai 2 éléments ou plus j'ai le bon résultat?

    Merci pour votre aide

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par joziel
    Pourquoi lorsque ma liste ne contient qu'un élément, j'obtiens le même résultat que lorsqu'elle est vide
    Si ta suite d'instructions renvoit un seul élément, PowerShell renvoit un objet du type interrogé, si elle renvoit + éléments, PS renvoit un tableau d'objet (par défaut).
    Tu dois forcer le renvoit du résultat en un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $lfic = Get-ChildItem c:\test *.sql | ForEach-Object {$_.FullName }
    $lfic.GetType()
    $lfic = @(Get-ChildItem c:\test *.sql | ForEach-Object {$_.FullName })
    $lfic.GetType()
    [string[]]$lfic = @(Get-ChildItem c:\test *.sql | ForEach-Object {$_.FullName })
    $lfic.GetType()
    Ainsi la propriété Count sera présente puisque tu récupères un tableau.

    Sinon de préciser -process n'est pas nécessaire.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Par défaut
    Parfait!
    Merci pour l'explication et l'exemple!

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 13/10/2005, 12h55
  2. Comment détecter si un tableau est vide ?
    Par ErPi dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 18h50
  3. Réponses: 6
    Dernier message: 18/05/2005, 14h04
  4. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33
  5. fonction renvoyant un tableau en argument
    Par Jones dans le forum Langage
    Réponses: 6
    Dernier message: 30/09/2002, 18h20

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