[Pwsh]Comment convertir un objet en string ?

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. 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. 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
      1. 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"
        1. 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.
          1. Bon en fait $test[$i].Name fonctione si je ne fais pas de | select $_.Name avant.

            Ca fonctionne très bien !

            Merci :)