Question
[résolu]Passer des 'Property' en param d'une fct°.
- SUSINI Vincent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 14 ans 6 mois #10110
par SUSINI Vincent
[résolu]Passer des 'Property' en param d'une fct°. a été créé 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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 6 mois #10112
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Passer des 'Property' en parametre d'une fonction.
Salut,
Escandil écrit:
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 \"Racine, Branche, Nom, Extension, Emplacement, Taille\"
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 \"Racine, Branche, Nom, Extension, Emplacement, Taille\"
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
Escandil écrit:
Tu devrais relire la doc du paramètre PropertyJe 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..
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 \"Racine, Branche, Nom, Extension, Emplacement, Taille\"
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 \"Racine, Branche, Nom, Extension, Emplacement, Taille\"
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.
- SUSINI Vincent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 14 ans 6 mois #10114
par SUSINI Vincent
Réponse de SUSINI Vincent sur le sujet Re:Passer des 'Property' en parametre d'une fonction.
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 (\"Racine\", \"Branche\", \"Nom\", \"Extension\"«») [/code:1]
Merci pour votre aide.
Et du coup ça marche beaucoup mieux avec un tableaux d'objets.
[code:1]ToWeb -Liste $Liste_fichier -Prop (\"Racine\", \"Branche\", \"Nom\", \"Extension\"«») [/code:1]
Merci pour votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 6 mois #10123
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Passer des 'Property' en parametre d'une fonction.
Escandil écrit:
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]
De rien.Merci pour votre aide.
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.098 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [résolu]Passer des 'Property' en param d'une fct°.