Question ArrayList et Format-wide

Plus d'informations
il y a 14 ans 6 mois #10288 par lakcil
ArrayList et Format-wide a été créé par lakcil
Bonjour,
Je cherche désespérément à afficher le contenu d'un arrayliste en nombre de colonnes automatique via format-wide.
Après des recherches j'ai trouvé ceci qui marchait jusque là:
[code:1]
$maliste = New-Object System.Collections.ArrayList

# je remplie ma liste

maliste | Format-Wide {$_} -Force -AutoSize[/code:1]

mon problème: j'ai une fonction qui renvoie un arraylist et lorsque j'applique le code précédent sur le retour de ma fonction, j'ai une belle erreur:

out-lineoutput : L'objet de type « Microsoft.PowerShell.Commands.Internal.Format.FormatStartData » n'est pas valide ou n'apparaît pas dans
l'ordre approprié. La raison en est probablement un conflit entre une commande « format-wide » spécifiée par l'utilisateur et la mise en forme par défaut.


Merci pour vos retours.<br><br>Message édité par: Arnaud, à: 20/09/11 11:54

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

Plus d'informations
il y a 14 ans 6 mois #10291 par Arnaud Petitjean
Bonjour,

Pourrais tu poster le code qui te permet de \&quot;peupler\&quot; ton arraylist pour que je puisse tester ?

D'autre part, l'utilisation de la commande Format-Wide suivi des accolades et de $_ me semble bizarre.

J'aurais plutôt écrit quelque chose comme :
[code:1]
$maListe | Format-Wide -AutoSize
[/code:1]

Arnaud<br><br>Message édité par: Arnaud, à: 20/09/11 11:54

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 14 ans 6 mois #10296 par lakcil
Réponse de lakcil sur le sujet Re:ArrayList et Format-wide
Arnaud écrit:

Bonjour,

Pourrais tu poster le code qui te permet de \&quot;peupler\&quot; ton arraylist pour que je puisse tester ?

Mon code compare deux liste de vm: une première liste issue d'un fichier et une deuxième liste issue des vm présentes dans le vcenter.
En gros je mets dans une liste les vm présentes dans un fichier et absentes du vcenter.



function listeVMAbsentes (){
param([System.Collections.ArrayList]$listeSrc,[System.Collections.ArrayList]$listeComparee)
$listeVMAbsent = New-Object System.Collections.ArrayList
#Compare 2 liste, le signe =&gt; indique les elts dans la 2ème et non presents dans la 1ère
Compare-Object $listeSrc $listeComparee | Where-Object { $_.SideIndicator -eq '=&gt;'} | Foreach-Object { $listeVMAbsent.Add($_.InputObject) | Out-Null}
return $listeVMAbsent
}


D'autre part, l'utilisation de la commande Format-Wide suivi des accolades et de $_ me semble bizarre.

J'aurais plutôt écrit quelque chose comme :
[code:1]
$maListe | Format-Wide -AutoSize
[/code:1]

Lorsque tu fais cette commande, le format-wide s'aplique aux indices de la liste plutot qu'aux elements, voilà pourquoi les accolades et $_

Arnaud&lt;br&gt;&lt;br&gt;Message édité par: Arnaud, à: 20/09/11 11:54

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

Plus d'informations
il y a 14 ans 5 mois #10301 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:ArrayList et Format-wide
Bonjour,

Lorsque tu fais cette commande, le format-wide s'aplique aux indices de la liste plutot qu'aux elements, voilà pourquoi les accolades et $_


Arnaud a raison... Si tu veux absolument utiliser la variable de pipeline '$_' il faut que tu l'utilises sous la forme :

[code:1]
$maliste | Foreach-Object{ Format-Wide $_ -Force -AutoSize }[/code:1]


Mais je ne sais pas si cela répond à ton besoin.

Autre exemple d'utilisation de '$_', mais cette fois-ci avec la Cmdlet 'Where-Object' :

[code:1]Get-Service | Where-Object{$_.status -eq \&quot;Running\&quot; } [/code:1]

Cette commande permet de récupérer tous les services dont le status est 'Démarré'.

@ +

Matthew

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

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