Powershell获取变量列表


支持3.0及以后

我们的需求是当想要列出脚本中所有变量。

这里定义了一个函数 Get-Variable:

function Get-Variable
{
  
  $token = $null
  $errors = $null
  
  $ast = [System.Management.Automation.Language.Parser]::ParseInput($psise.CurrentFile.Editor.Text, [ref] $token, [ref] $errors)
  
  # not complete, add variables you want to exclude from the list:
  $systemVariables = '_', 'null', 'psitem', 'true', 'false', 'args', 'host'
  
  $null = $ast.FindAll({ $args[0] -is [System.Management.Automation.Language.CommandAst] }, $true)
  $token | 
    Where-Object { $_.Kind -eq 'Variable'} |
    Select-Object -ExpandProperty Name |
    Where-Object { $systemVariables -notcontains $_ } |
    Sort-Object -Unique
}

将脚本加载到ISE编辑器,接着已交互方式运行Get-Variable.

你将获取当前打开脚本的变量清单。

如果你用包含了脚本代码的变量去替换掉 “$psise.CurrentFile.Editor.Text”。你可以直接在编辑器外部运行这个,照这样,我们可以使用Get-Content加载任何脚本到变量,同时使用这个加载变量到上面代码中。

原文地址:Getting a Variable Inventory

本文链接: https://www.pstips.net/getting-a-variable-inventory.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注