要分析一个脚本快中的内容,您可以简单地检查 AST,并且,例如创建一个包含代码中所有变量的清单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $code = {
$a = "Test" $b = 12 Get-Service Get-Process $berta = 100
}
$code.Ast.FindAll( { $true }, $true) | Where-Object { $_.GetType().Name -eq 'VariableExpressionAst' } | Select-Object -Property VariablePath -ExpandProperty Extent | Out-GridView
|
如果您想查看所有的命令,请试试以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $code = {
$a = "Test" $b = 12 Get-Service Get-Process $berta = 100
}
$code.Ast.FindAll( { $true }, $true) | Where-Object { $_.GetType().Name -eq 'CommandAst' } | Select-Object -ExpandProperty Extent | Select-Object -Property * -ExcludeProperty *ScriptPosition | Out-GridView
|
这在根据脚本块自动生成文档的时候非常有用。