2017-04-22 3 views
-1

PowerShellスクリプトのparamブロックを抽出します。 これはASTパーサーでは可能ですが、役立つスニペットは見つかりませんでした。スクリプトからparamブロックを抽出する

私はこのHere-Stringを持っており、paramブロックを文字列として抽出したいだけです。

$scriptBlock = @' 
Param (
    [Parameter(Mandatory=$true)][string]$param1, 
    [Parameter(Mandatory=$true)][string]$param2, 
    [Parameter(Mandatory=$true)][switch]$param3 
) 
Write-Output ('param1: {0}' -f $param1) 
Write-Output ('param2: {0}' -f $param2) 
Write-Output ('param3: {0}' -f $param3) 
'@ 
+0

[関連](http://stackoverflow.com/a/41029306/1630171)。 –

答えて

1

インスピレーションのためにAnsgar Wiechersありがとうございました。

私はこの問題を解決する方法を見つけました。それは作業の解決策です:

$scriptBlock = @' 
Param (
    [Parameter(Mandatory=$true)][string]$param1, 
    [Parameter(Mandatory=$true)][string]$param2, 
    [Parameter(Mandatory=$true)][switch]$param3 
) 
Write-Output ('param1: {0}' -f $param1) 
Write-Output ('param2: {0}' -f $param2) 
Write-Output ('param3: {0}' -f $param3) 
'@ 

[ref]$tokens = $null 
[ref]$parseErrors = $null 
$paramBlock = ([Management.Automation.Language.Parser]::ParseInput($scriptBlock, $parseErrors,$tokens)).ParamBlock.toString() 
関連する問題