Get-Variable

获取当前控制台中的变量。

语法

Get-Variable
   [[-Name] <String[]>]
   [-ValueOnly]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Scope <String>]
   [<CommonParameters>]

说明

Get-Variable cmdlet 获取当前控制台中的 PowerShell 变量。 通过指定 ValueOnly 参数可以只检索这些变量的值,还可以按名称筛选返回的变量。

示例

示例 1:按字母获取变量

此命令将获取名称以字母 m 开头的变量。 该命令还将获取这些变量的值。

Get-Variable m*

示例 2:按字母获取变量值

此命令仅获取名称以 m 开头的变量的值。

Get-Variable m* -ValueOnly

示例 3:按两个字母获取变量

此命令将获取有关以字母 M 或字母 P 开头的变量的信息。

Get-Variable -Include M*,P*

示例 4:按作用域获取变量

第一个命令仅获取在本地作用域中定义的变量。 它等效于 Get-Variable -Scope Local,可以缩写为 gv -s 0

第二个命令使用 Compare-Object cmdlet 来查找在父作用域(作用域 1)中定义但仅在本地作用域(作用域 0)中可见的变量。

Get-Variable -Scope 0
Compare-Object (Get-Variable -Scope 0) (Get-Variable -Scope 1)

参数

-Exclude

指定此 cmdlet 将从操作中排除的项数组。 允许使用通配符。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:True

-Include

指定此 cmdlet 会对其执行操作的项的数组(排除所有其他项)。 允许使用通配符。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:True

-Name

指定变量的名称。 允许使用通配符。 还可以通过管道将变量名称传递给 Get-Variable

类型:String[]
Position:0
默认值:None
必需:False
接受管道输入:True
接受通配符:True

-Scope

在作用域中指定变量。此参数的可接受值为:

  • 全局
  • 本地
  • 脚本
  • 一个相对于当前作用域的数字(0 到作用域数,其中 0 是指当前作用域,1 是指其父作用域)

默认值为 Local。 有关详细信息,请参阅 about_Scopes

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ValueOnly

指示此 cmdlet 仅获取变量的值。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

String

可以通过管道将包含变量名称的字符串传递给此 cmdlet。

输出

PSVariable

默认情况下,此 cmdlet 为它所获取的每个变量返回一个 AutomationPSVariable 对象。 对象类型取决于变量。

Object[]

当你指定 ValueOnly 参数且指定变量的值为集合时,此 cmdlet 会返回 [System.Object[]]。 此行为会阻止正常的管道操作一次处理一个变量的值。 强制集合枚举的解决方法是将 Get-Variable 命令括在括号中。

备注

PowerShell 包含 Get-Variable 的以下别名:

  • 所有平台:

    • gv
  • 此 cmdlet 不管理环境变量。 若要管理环境变量,可以使用环境变量提供程序。