Itérer sur PSObject propriétés en PowerShell
J'ai cette PSObject
(XML):
bool : {IsActive, ShowOnB2C, ShowOnB2B, IsWebNews}
str : {id, ProductId, GroupName, Unit...}
int : {ProductIdNumeric, Prices_SalesOne, Prices_Treater, Prices_B2C...}
arr : {EnvironmentBrands, Catalogs, NavisionLevels}
long : long
Je voudrais effectuer une itération sur les propriétés sans l'aide de la propriété des noms, par exemple bool
.
J'ai essayé de l'index de l'objet comme ceci:
$document[0]
Mais qui ne me donne rien, mais il ne cause pas d'erreurs non plus.
Select-Object
type de travaux, mais puis-je utiliser les noms de propriété, et je n'en veux pas.
$documents | Select-Object bool,str
ForEach
ne pas parcourir les propriétés.
$documents | ForEach {
$_.name
}
retourne doc et c'est le nom de la balise XML () la tenue de la booléens, entiers, et les chaînes de caractères.
- Vous pourriez avoir un coup d'oeil à
Get-Member
applet de commande. - Je vous remercie pour avoir un bon titre à votre question.
Vous devez vous connecter pour publier un commentaire.
Ceci est possible en utilisant la propriété hidden
PSObject
:$documents = $responseContent.ChildNodes.result.doc
Je préfère utiliser
foreach
à boucle via PowerShell objets:Généralement,
foreach
a des performances supérieures à cellesForeach-Object
.Et oui,
foreach
est en fait différent deForeach-Object
sous le capot.Comme stej mentionné, il y a le
Get-member
applet de commande avec un-MemberType
paramètre, vous pouvez utiliser:Vous pourriez avoir besoin NoteProperty trop avec Get-member.
EDIT: vidage de toutes les valeurs: