J'essaie d'extraire le Get-Help
les en-têtes de commentaire d'un script PowerShell... en utilisant PowerShell. Le fichier que je lis ressemble à quelque chose comme ceci :
<#
.SYNOPSIS
Synopsis goes here.
It could span multiple lines.
Like this.
.DESCRIPTION
A description.
It could also span multiple lines.
.PARAMETER MyParam
Purpose of MyParam
.PARAMETER MySecondParam
Purpose of MySecondParam.
Notice that this section also starts with '.PARAMETER'.
This one should not be captured.
...and many many more lines like this...
#>
# Rest of the script...
Je voudrais obtenir tout le texte ci-dessous .DESCRIPTION
jusqu'à la première instance de .PARAMETER
. Donc la sortie souhaitée serait :
A description.
It could also span multiple lines.
Voici ce que j'ai essayé :
$script = Get-Content -Path "C:\path\to\the\script.ps1" -Raw
$pattern = '\.DESCRIPTION(.*?)\.PARAMETER'
$description = $script | Select-String -Pattern $pattern
Write-Host $description
Quand j'exécute ça, $description
est vide. Si je change $pattern
a .*
J'obtiens le contenu complet du fichier, comme prévu. Il doit donc y avoir un problème avec mon modèle RegEx, mais je ne parviens pas à le résoudre.
Des idées ?