[Pwsh]Comment convertir un objet en string ?

Résolu
fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   -  
fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Débutant en powershell, j'essaye de récupérer des informations que me sont transmises sous forme d'objet. Actuellement, je fais une manip qui, à mon humble avis, est vraiment moche ......

for ($i=0 ; $i -lt $test.length; $i++ )
{
    $tmp=[string]$test[$i]
    $tmp=$tmp.Split("=")[-1]
    $tmp=$tmp.Split("}")[0]
    echo $tmp
}


Donc voila, c'est très moche et je pense qu'il y a un autre moyen d'extraire une String d'un objet non?

Merci

4 réponses

  1. boissonnfive Messages postés 438 Statut Membre 40
     
    Essaye ça alors:

    echo $test[$i].Name


    Pour ton information, si tu castes $test en String et que tu demandes le type, c'est normal que tu obtiennes String ;o)
    Le GetType().FullName, il faut le faire sur $test. C'est lui l'objet dont tu dois connaître le type.

    Et si tu fais ça ?

    format-list -InputObject $test


    Bon courage, tu débutes non?
    1
  2. boissonnfive Messages postés 438 Statut Membre 40
     
    Bonjour,

    pour savoir si ta variable est un string, tu peux écrire:

    $MaVariable.GetType().FullName


    qui doit retourner:

    System.String


    Une fois que tu as le type de l'objet, tu recherches s'il existe une méthode qui affiche un string à partir de cet objet.

    J'ai trouvé ça aussi:

    format-list -InputObject $My_Variable
    0
  3. fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
     
    Bonjour,

    $tmp=[string]$test[$i]
    $tmp.GetType().FullName


    me renvoit bien System.String

    par contre :

    $toto=format-list -InputObject $tmp
    echo $toto


    me renvoit :

    @{ $_.Name =titi}

    J'aimerai bien que $toto="titi"
    0
  4. fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
     
    Oui je viens du bash... En pleine phase d'apprentissage !

    format-list -InputObject $test


    Me renvoi :

    $_.Name : toto

    $_.Name : titi

    $_.Name : tata

    et par contre :

    echo $test[$i].Name


    ne print rien.

    En fait, je voudrais réussir à récupérer les valeurs de mon objet qui semble être un tableau d'objet.
    0
    1. fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
       
      Bon en fait $test[$i].Name fonctione si je ne fais pas de | select $_.Name avant.

      Ca fonctionne très bien !

      Merci :)
      0