Open Rapidhands opened 1 year ago
Oui, le code HTML est a revoir et peu bcp etre amélioré et simplifié, au départ je l'ai construis au millimètre fallait calcule la largeur, hauteur ne pas décalé et hop on revoit tout, j'étais aussi beaucoup aidé par le développeur du module qui a revu lui aussi pas mal de chose. Je vais essayer de réduire cela dans des sous fonctions mais je sais pas si ca marchera ou pas, car il a une méthode native
Prends un fichier .ps1 quelconque, comme celui cité en exemple. Au début du script ajoute et défini $PSDefaultParameterValue. Il y a une aide sur le technet sur ça, mais l'exemple que je t'ai mis explique bien :
Une fois que tu as fait cela, recherche les paramètres en question et fait le ménage. Là ou tu avais
Quand je code, dès que je m'aperçois que je dois mettre x fois un paramètre avec la même valeur, je défini cela en PSDefaultParameterValue (cela ne s'applique qu'au script ou au shell si c'est dans $Profile). et après, cela me facilite la frappe, je n'ajoute que les paramètres avec des valeurs spécifiques.
Le code HTML est un appel d'une fonction d'un autre module, peut etre que je tenterai une function qui me retourne la ligne entiere et je lui envoie que les parametres, mais je ne pense pas que le module html à été pensé comme ça, j'ai déja tenté des modifications mais toujours déformer en résultat.
ce n'est pas ça dont je te parle. Tu passes - et tu n'as pas le choix- xx fois les mêmes cmdlets, mais dans 95% du temps avec les mêmes paramètres et les mêmes valeurs. Mets ces paramètres et ces valeurs dans le $PSDefaultParameterValue et tu n'auras pas besoin de les écrire, et ça rend le code plus lisible. Si tu ne sais pas ce qu'est cette variable dont je parle, c'est une variable prédéfinie, une recherche sur Internet t'en dira plus
re Medhi J'ai regardé le code (ex ici function_HTMLMultiPage.ps1). Dans ton code tu as 100 les mêmes cmdlets (Ok), mais avec 100 fois les mêmes paramètres (ex. New-HTMLText -Text $userinactive -Alignment justify -FontSize 25 -FontWeight bold ) tu aurais tout intérêt à te simplifier le code en utilisant en début de script un plat pour définir les valeurs par défaut de ces cmdlets dans la variable PSDefaultParameterValues. Ainsi, tu n'aurais qu'à saisir a cmdlet et sans paramètre spécifié cela appliquerait ceux du PDDefaultParameterValues. De plus,si tu veux en changer 1, tu n'as à le changer qu'une seule fois dans la variable et tu n'as pas à te coltiner tout le code.
un exemple de splat pour cela:
cordialement Olivier