Question [résolu]Passer des 'Property' en param d'une fct°.

Plus d'informations
il y a 14 ans 6 mois #10110 par SUSINI Vincent
Bonjour,

Je rencontre un problème que j'ai fini par contourner, mais que je souhaiterais toutefois résoudre pour ma culture personnelle.

Je créer des listes d'objets sous powershell avec la méthode suivante (par exemple sur des fichiers ):
[code:1]
$Liste_fichier += new-object PSObject -property @{
Emplacement = $elements.DirectoryName
Nom = $elements.Name
Extension = $elements.Extension
Taille = $elements.Length
}
[/code:1]

Ensuite je manipule ma liste, et je la renvoie sous forme de fichier html avec ConvertTo-html.

[code:1]
$Liste_fichier | ConvertTo-Html -Property Nom, Extension, Emplacement, Taille -Title 'Ma Liste' -Head $Head [+Traitement sur chaque ligne+] | Out-File $Rep_htm\$Nom_Page [/code:1]

Jusque là tout cela fonctionne bien.


Mais je créer un grand nombre de liste et de pages web, j'ai donc créé une fonction pour convertir mes listes.

[code:1]
function ToWeb
{
param ($Liste, [Object]$Prop, $Title, $Center, $Nom_Page)

$Liste | ConvertTo-Html -Property $Prop -Title $Title -Head $Head -Body ..
[/code:1]

Mais les propriétés passées sous forme de chaîne ne passent pas et mon tableau html est vide.

[code:1]
ToWeb -Liste $Liste_fichier -Prop \"Racine, Branche, Nom, Extension, Emplacement, Taille\" -Title..
[/code:1]



L’intérêt du -Property dans le convertTo-Html est de choisir l'ordre de mes colonnes, j'ai donc essayé de passer par Select-Object, mais le résultat est quasi le même (une seule colonne vide)


Je vois bien que le type Property est un System.Object[] mais je ne comprends pas comment lui faire accepter ma chaîne de caractère..<br><br>Message édité par: Escandil, à: 24/08/11 10:32

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

Plus d'informations
il y a 14 ans 6 mois #10112 par Laurent Dardenne
Salut,
Escandil écrit:

Je vois bien que le type Property est un System.Object[] mais je ne comprends pas comment lui faire accepter ma chaîne de caractère..

Tu devrais relire la doc du paramètre Property
et l'exemple 4 de ConvertTo-Html :
[code:1]help ConvertTo-Html -parameter Property
help ConvertTo-Html -Example [/code:1]
Un exemple :
[code:1]
function ToWeb
{
param ($Liste, [Object]$Prop, $Title, $Center, $Nom_Page)

$Prop.gettype()
$Prop
}
ToWeb -Prop \&quot;Racine, Branche, Nom, Extension, Emplacement, Taille\&quot;
Write-host ('-' * 80);Write-host
function ToWeb
{
param ($Liste, [Object[]]$Prop, $Title, $Center, $Nom_Page)

$Prop.gettype()
$Prop
Write-host ('*' *80);Write-host
$Prop[0].gettype()
$Prop[0]
}
ToWeb -Prop \&quot;Racine, Branche, Nom, Extension, Emplacement, Taille\&quot;
Write-host ('-' *80);Write-host
ToWeb -Prop Racine, Branche, Nom, Extension, Emplacement, Taille
[/code:1]
Soit tu reçois un tableau de chaîne, soit une seul chaine, mais dans ce cas c'est à toi d'extraire chaque nom de propriété.<br><br>Message édité par: Laurent Dardenne, à: 23/08/11 19:25

Tutoriels PowerShell

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

Plus d'informations
il y a 14 ans 6 mois #10114 par SUSINI Vincent
Bon effectivement c'était une erreur bête..

Et du coup ça marche beaucoup mieux avec un tableaux d'objets.

[code:1]ToWeb -Liste $Liste_fichier -Prop (\&quot;Racine\&quot;, \&quot;Branche\&quot;, \&quot;Nom\&quot;, \&quot;Extension\&quot;«») [/code:1]

Merci pour votre aide.

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

Plus d'informations
il y a 14 ans 6 mois #10123 par Laurent Dardenne
Escandil écrit:

Merci pour votre aide.

De rien.
Le parseur de la ligne de commande ne pouvant travailler que sur des strings, tu peux te faciliter la vie en simplifiant la saisie:
[code:1]
ToWeb -Liste $Liste_fichier -Prop Racine, Branche, Nom, Extension
[/code:1]

Tutoriels PowerShell

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

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