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 :

Affichage, Classement via un Select avec variable ? [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Novembre 2004
    Messages : 388
    Par défaut Affichage, Classement via un Select avec variable ?
    Bonjour a tous,

    J'ai un tableau simple avec des données ou j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Headers = "A", "B"
    ($Data  | ConvertFrom-Csv -Delimiter ";" -Header $Headers)
    En sorti j'ai un tableau qui ressemble a ça

    | A | B |
    |---|---|
    | 1 | 2 |

    Plus loin dans le code j'ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Data | Add-Member -NotePropertyName ID -NotePropertyValue "3"
    En sorti j'ai
    | A | B | ID
    |---|---|---
    | 1 | 2 | 3

    Je souhaiterais l'avoir comme ça :
    | ID| A | B
    |---|---|---
    | 3 | 1 | 2

    J'ai tenté de faire un truc dans le style
    $Data | Select ID, $Headers

    Mais ça na pas fonctionné

    Le script génère plusieurs tableaux avec des headers différant ou le nom est changeant tout le temps, il y a que le ID qui est connu

    Avez vous une idée ?

  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,
    le cmdlet Select-object attend un tableau de String, la syntaxe suivante ne fonctionne pas:
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select -Property $headers,'handle'
    Ni celle-là
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select -Property $headers+'handle'
    mais celle-ci fonctionne :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select -Property @($headers+'handle')
    Il en existe peut être d'autres basées sur un scriptblock, je te laisse tester ;-)

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $item = New-Object PSObject
    $item | Add-Member -type NoteProperty -Name 'A' -Value '1'
    $item | Add-Member -type NoteProperty -Name 'B' -Value '2'
    $item | Add-Member -type NoteProperty -Name 'ID' -Value '3'
     
    $item | Select-Object "ID", *

  4. #4
    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
    Le nom de propriété doit être unique dans la collection, mais ce n'est pas précisé dans la doc :
    Get-Help Select-Object -Parameter property

    -Property <Object[]>
    Specifies the properties to select. Wildcards are permitted.

    The value of the Property parameter can be a new calculated property. To create a calculated, property, use a hash
    table. Valid keys are:

    - Name (or Label) <string>

    - Expression <string> or <script block>

    Obligatoire ? false
    Position ? 0
    Valeur par défaut None
    Accepter l'entrée de pipeline ? False
    Accepter les caractères génériques ? false
    Dommage c'était une solution élégante :-)

  5. #5
    Membre éprouvé
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Novembre 2004
    Messages : 388
    Par défaut
    Bonjour,

    ça fonctionne mais j'ai un message d'erreur et je ne sais pas trop pourquoi !

    Citation Envoyé par ericlm128 Voir le message
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $item = New-Object PSObject
    $item | Add-Member -type NoteProperty -Name 'A' -Value '1'
    $item | Add-Member -type NoteProperty -Name 'B' -Value '2'
    $item | Add-Member -type NoteProperty -Name 'ID' -Value '3'
     
    $item | Select-Object "ID", *

    Voici le message d'erreur :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Select-Object : La propriété ne peut pas être traitée, car la propriété « ID » existe déjà.
    Au caractère Ligne:1 : 19
    + $tableaucsvData | Select-Object -Property "ID",*
    +                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation : (@{INT=A... ID=TEST}:PSObject) [Select-Object], PSArgumentException
        + FullyQualifiedErrorId : AlreadyExistingUserSpecifiedPropertyNoExpand,Microsoft.PowerShell.Commands.SelectObjectCommand


    Si j'ajoute
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    $Data | Select-Object -Property "ID",* -ErrorAction SilentlyContinue

    je n'ai plus de message d'erreur (normal^^)

    Les autres test avec le code de Laurent ça n'a pas fonctionné

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Et comme ceci ?
    Je te l'accorde que c'est un peu galère pour pas grand chose.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $item = New-Object PSObject
    $item | Add-Member -type NoteProperty -Name 'A' -Value '1'
    $item | Add-Member -type NoteProperty -Name 'B' -Value '2'
    $item | Add-Member -type NoteProperty -Name 'ID' -Value '3'
     
    [object[]]$Fields = "ID"
    $Fields += [object[]]($item.PSObject.Properties.Name | Where-Object {$_ -ne "ID"})
    $item | Select-Object -Property $Fields

  7. #7
    Membre éprouvé
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Novembre 2004
    Messages : 388
    Par défaut
    ça fonctionne

    merci beaucoup

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

Discussions similaires

  1. [XL-2007] VBA copier coller d'une selection avec variable
    Par K.Barber dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/10/2013, 15h11
  2. Requête select avec variable
    Par katwes dans le forum Débuter
    Réponses: 10
    Dernier message: 29/09/2011, 15h16
  3. vba range selection avec variable
    Par pierre.paumier dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2007, 03h04
  4. vba range selection avec variable
    Par pierre.paumier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2007, 23h35
  5. selection avec variable type *
    Par SCHOLLERF dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/10/2007, 05h18

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