8
votes

PowerShell a-t-il un équivalent "EVAL"? Y a-t-il un meilleur moyen de voir une liste de propriétés et de valeurs?

Je fais un peu de script de PowerShell (pour la première fois) pour examiner certaines choses dans un site SharePoint et ce que j'aimerais pouvoir faire, c'est passer par une liste de propriétés d'un objet et juste Sortie de leurs valeurs dans une sorte de format "Nom de propriété = valeur".

Maintenant, je peux trouver la liste des éléments à l'aide de cette utilisation: xxx

qui retournera une liste de toutes les propriétés de manière très claire et lisible. Mais ce dont j'ai besoin, c'est de trouver une valeur pour ces propriétés.

Dans certaines langues de script, je pourrais avoir une sorte d'évaluation ("$ myObject. $ propriétéName") appelé - où j'ai extrait $ propriété de la Out-Member Sortie - et devez-la évaluer la chaîne sous forme de code, qui pour le type de solution rapide et sale que j'ai besoin serait bien.

Est-ce qu'il existe dans PowerShell ou y a-t-il un moyen plus pratique? pour le faire? Dois-je utiliser la réflexion à la place?


0 commentaires

3 Réponses :


9
votes

Pour obtenir la valeur des propriétés d'un objet, vous pouvez utiliser plusieurs méthodes.

Tout d'abord, vous pouvez utiliser Select-Object et utiliser le paramètre -Property pour spécifier les valeurs de propriété que vous souhaitez revenir. La manière dont cela est affichée dépendra du nombre de propriétés que vous spécifiez et du type d'objet qu'il est. Si vous souhaitez toutes les propriétés, vous pouvez utiliser le Wildcard (*) pour les obtenir tous. P>

Exemple - P>

$myobject."$propertyname" 


1 commentaires

Je pense que vous pouvez même perdre les citations dans ce dernier code de code: $ myObject. $ PropriétéName Il a l'air étrange, mais fonctionne.



1
votes

Pour vous FUNT PROIDE Le meilleur choix est Format-Personnalisé Code>.

$obj = get-date
$obj | 
   gm -MemberType *property | 
   % { write-host ('{0,-12} = {1}' -f $_.Name, $obj.($_.Name)) }


0 commentaires

1
votes

Pour cela, je recommanderais d'utiliser Format-List -force E.G.:

Get-Process | Format-List * -Force

-force est facultatif mais parfois PowerShell masque les propriétés que je veux vraiment voir. p> p>


0 commentaires