PowerShell 技能连载 - 查找脚本块变量

脚本块定义了一段 PowerShell 代码而并不执行它。最简单的定义脚本块的方法是将代码放入花括号中。

脚本块有一系列高级功能,能够检测花括号内部的代码。其中的一个功能是直接访问抽象语法树 (AST)。AST 可以分分析代码内容。以下是一个读出脚本块中所有变量名的例子:

#requires -Version 3


$scriptblock = {

   $test = 1
   $abc = 2

}

$scriptblock.Ast.FindAll( { $args[0] -is [System.Management.Automation.Language.VariableExpressionAst] }, $true ) |
  Select-Object -ExpandProperty VariablePath | Select-Object -ExpandProperty UserPath

PowerShell 技能连载 - 查找脚本块变量

http://blog.vichamp.com/2015/11/12/finding-script-block-variables/

作者

吴波

发布于

2015-11-12

更新于

2022-07-06

许可协议

评论