{{tag>dev powershell aide}} ====== PowerShell : Intégrer l'aide au code ====== La cmdlet **Get-Help** peut extraire les commentaires présents dans les scripts (module et les fonctions) et générer / mettre en forme l'aide. La documentation officielle désigne cela par **aide basée sur les commentaires**. ===== Aide intégrée aux fonctions ===== Tous les commentaires ne sont pas extraits pour la génération de l'aide basée sur les commentaires. Dans le cas d'une fonction il faut les placer : * En entête de la définition de la fonction ; * Sur la première ligne sous la signature de la fonction ; * Sur la dernière ligne avant la fermeture de la fonction. <# .Description The MyProcess function gets the Windows PowerShell process. #> function MyFunction { Get-Process powershell} function MyProcess { <# .Description The MyProcess function gets the Windows PowerShell process. #> Get-Process powershell } La méthode recommandée est d'intégrer l'aide basée sur les commentaire directement sous la signature de la fonction comme présenté ci-dessus. Ainsi les commentaires restent liés à la fonction. function MyFunction { Get-Process powershell <# .Description The MyProcess function gets the Windows PowerShell process. #> } Le bloc de commentaires utilisés pour la génération de l'aide contiennent des **mots clés** commençant par un .. Ni l'ordre d’apparition, ni la casse de caractères n'a d'importance. Quelques mots clés usuels : ^ .SYNOPSIS | Description courte, ne s'utilise qu'une fois par rubrique. | ^ .DESCRIPTION | Description détaillée, ne s'utilise qu'une fois par rubrique. | ^ .PARAMETER aParam | Description d'un paramètre. | ^ .EXAMPLE | Exemple d'utilisation/appel de la fonction ou du script. | ^ .LINK | Associer une ou plusieurs rubrique d'aide ou Uri | ===== Troubleshooting ===== La fonction est bien définie dans l'environnement courant mais les rubriques de l'aide ne sont pas remplies par les commentaires intégrés dans le code. Ce problème a été rencontré notamment à cause d'une mauvaise syntaxe du mot clé .PARAMETER <# # Syntaxe invalide! .PARAMETER aParam Description du paramètre. # le mot clé .PARAMETER doit être suivi immédiatement par le nom du paramètre .PARAMETER aParam Description du paramètre ici. #> Pour tester la validité de la syntaxe, on peut simplement copier/coller la définition de la fonction dans l'environnement courant. L'appel de Get-Help avec le nom de la fonction doit retourner l'aide correctement formatée. ===== Références ===== * https://learn.microsoft.com/en-us/powershell/scripting/developer/help/writing-help-for-windows-powershell-scripts-and-functions?view=powershell-5.1 * [[ https://learn.microsoft.com/fr-fr/powershell/module/microsoft.powershell.core/about/about_comment_based_help?view=powershell-7.3|A propos de l'aide basée sur les commentaires (Microsoft Learn)]] * [[https://learn.microsoft.com/fr-fr/powershell/scripting/developer/help/comment-based-help-keywords?view=powershell-5.1|Mots clés de l'aide basée sur les commentaires (Microsoft Learn)]] * [[https://learn.microsoft.com/en-us/powershell/scripting/developer/help/examples-of-comment-based-help?view=powershell-7.3|Exemples d'aide basée sur les commentaires (Microsoft Learn)]]