[Pwsh]Comment convertir un objet en string ?

Résolu/Fermé
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 - 14 avril 2011 à 15:11
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 - 15 avril 2011 à 09:54
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

boissonnfive Messages postés 422 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 30 avril 2018 40
Modifié par boissonnfive le 14/04/2011 à 20: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
boissonnfive Messages postés 422 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 30 avril 2018 40
Modifié par boissonnfive le 14/04/2011 à 15:59
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
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
14 avril 2011 à 16:20
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
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
15 avril 2011 à 09:34
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
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
15 avril 2011 à 09:54
Bon en fait $test[$i].Name fonctione si je ne fais pas de | select $_.Name avant.

Ca fonctionne très bien !

Merci :)
0