Question récupérer un résultat correct dans une variable

Plus d'informations
il y a 11 ans 3 mois #18597 par freeman62
Bonjour :)

Ce que je souhaite faire parait simple mais ne fonctionne pas... correctement...

La commande suivante :
[code:1]Get-Item .\important.txt | select fullname[/code:1]
m'affiche ce résultat :
[code:1]
FullName
C:\temp\important.txt
[/code:1]

Mais lorsque je fais
[code:1]
$RepertoireFichier=Get-Item .\important.txt | select fullname[/code:1]
puis un
[code:1]
Write-Host $RepertoireFichier
[/code:1]
Cela m'affiche
[code:1]
@{FullName=C:\temp\important.txt}
[/code:1]

Je ne comprend pas...
Vous l'aurez compris B) je cherche juste à stocker le FullName uniquement dans ma variable $RepertoireFichier


Merci de votre aide ! :)
Freeman

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 3 mois #18598 par Laurent Dardenne
Le cmdlet Select-Object crée un autre objet à partir des propriétés indiquées.
Essaie ceci :
[code:1]
#renvoie le contenu su champ uniquement
$RepertoireFichier=Get-Item $pshome|select -ExpandProperty FullName

#ou
$RepertoireFichier=(Get-Item $pshome).FullName

[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 3 mois #18603 par gsa
Bonjour

un truc que je ne comprends pas

si on fait un
[code:1]Write-Output $RepertoireFichier
[/code:1]

on obtient bien la bonne valeur
[code:1]FullName
C:\Windows\system32\joy.cpl
[/code:1]

je pensais que Write-host et Write-Output aurait au moins renvoyé la meme chose ??

j'ai bien lu la différence entre les 2, mais je ne comprends pas cette différence de résultat ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 3 mois #18606 par Laurent Dardenne
gsa écrit:

on obtient bien la bonne valeur

Oui, mais en tant qu'objet pas en tant que chaine de caractères:
[code:1]
#Construit un objet avec une seule propriété
$RepertoireFichier=Get-Item $pshome|select FullName
$RepertoireFichier.gettype()
# IsPublic IsSerial Name BaseType
#

----
# True False PSCustomObject System.Object

#Construit une chaine de caractère avec le contenu d'une propriété
$RepertoireFichier=Get-Item $pshome|select -ExpandProperty FullName
$RepertoireFichier.gettype()
#
# IsPublic IsSerial Name BaseType
#

----
# True True String System.Object
[/code:1]
gsa écrit:

j'ai bien lu la différence entre les 2, mais je ne comprends pas cette différence de résultat ?

Différence sur l'objet ou les cmdlets ?

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.090 secondes
Propulsé par Kunena