变量提供程序

提供程序名称

变量

驱动器

Variable:

功能

ShouldProcess

简短说明

提供对 PowerShell 变量及其值的访问权限。

详细说明

PowerShell 变量 提供程序允许在当前控制台中获取、添加、更改、清除和删除 PowerShell 变量。

PowerShell 变量 提供程序支持 PowerShell 创建的变量,包括自动变量、首选项变量和创建的变量。

Variable 驱动器是仅包含变量对象的平面命名空间。 这些变量没有子项。

Variable 提供程序支持本文中介绍的以下 cmdlet。

PowerShell 还包括一组专为查看和更改变量而设计的 cmdlet。 使用 Variable cmdlet 时,无需在 Variable: 名称中指定驱动器。 本文不介绍如何使用 Variable cmdlet。

注意

还可以使用 PowerShell 表达式分析程序来创建、查看和更改变量的值,而无需使用 cmdlet。 直接使用变量时,请使用美元符号 ($) 将名称标识为变量,而赋值运算符 (=) 来建立和更改其值。 例如, $p = Get-Process 创建 变量并将 p 命令的结果 Get-Process 存储在其中。

此提供程序公开的类型

变量可以是几种不同的类型之一。 大多数变量将是 类的 PSVariable 实例。 下面列出了其他变量及其类型。

  • 变量 ? 是 类的 QuestionMarkVariable 实例。
  • 变量 null 是 类的 NullVariable 实例。
  • 最大计数变量是 类的 SessionStateCapacityVariable 实例。
  • LocalVariable 实例包含有关当前执行的信息,例如:
    • MyInvocation
    • PSCommandPath
    • PSScriptRoot
    • PSBoundParameters
    • args
    • input

变量提供程序在驱动器中Variable:公开其数据存储。 若要使用变量,可以将位置 Variable: 更改为驱动器 (Set-Location Variable:) ,也可以从任何其他 PowerShell 驱动器工作。 若要从另一个位置引用变量,请在路径中使用驱动器名称 (Variable:) 。

Set-Location Variable:

若要返回到文件系统驱动器,请键入驱动器名称。 例如,键入:

Set-Location C:

还可以使用任何其他 PowerShell 驱动器中的 变量 提供程序。 若要从另一个位置引用变量,请在路径中使用驱动器名称 Variable:

注意

PowerShell 使用别名使你能够熟悉地使用提供程序路径。 和 lsdir命令现在是 Get-ChildItem 的别名,cdSet-Location 的别名。 和 pwdGet-Location 的别名。

显示变量的值

获取当前会话中的所有变量

此命令将获取当前会话中所有变量及其值的列表。 可以从任何 PowerShell 驱动器使用此命令。

Get-ChildItem -Path Variable:

使用变量的提供程序路径获取变量

此命令使用以美元符号 ($) 前缀的提供程序路径检索变量值。 这与在变量名称前面加上美元符号 () $ 具有相同的效果。

$variable:home

使用通配符获取变量

此命令将获取名称以“max”开头的变量。 可以从任何 PowerShell 驱动器使用此命令。

Get-ChildItem -Path Variable:max*

获取 ? 的值 可变

此命令使用 -LiteralPathGet-ChildItem 的 参数从驱动器内Variable:获取变量的值??是路径中的通配符,但不Get-ChildItem尝试解析 参数值-LiteralPath中的任何通配符。

Get-ChildItem -Literalpath ?

获取 ReadOnly 和 Constant 变量

此命令获取其 Options 属性值为 或 Constant 的变量ReadOnly

Get-ChildItem -Path Variable: | Where-Object {
   $_.options -Match "Constant" `
   -or $_.options -Match "ReadOnly"
 } | Format-List -Property name, value, options

创建变量

Create新变量

此命令创建 变量并将 services 命令的结果 Get-Service 存储在其中。 由于当前位置位于驱动器中 Variable: ,因此 参数的 -Path 值为点 (.) ,表示当前位置。

命令周围的 Get-Service 括号可确保在创建变量之前执行命令。 如果没有圆括号,则新变量的值将为“Get-Service”字符串。

New-Item -Path . -Name services -Value (Get-Service)

使用绝对路径Create变量

此命令创建一个 services 变量,并将命令的结果 Get-Service 存储在其中。

New-Item -Path Variable:services -Value Get-Service

若要创建不含值的变量,请省略赋值运算符。

更改变量

重命名变量

此命令使用 Rename-Item cmdlet 将变量的名称 a 更改为 processes

Rename-Item -Path Variable:a -NewName processes

更改变量的值

此命令使用 Set-Item cmdlet 将变量的值 ErrorActionPreference 更改为“Stop”。

Set-Item -Path Variable:ErrorActionPreference -Value Stop

复制变量

此命令使用 Copy-Item cmdlet 将 processes 变量 old_processes复制到 。 这会创建一个名为 old_processes 的新变量,该变量的值与该 processes 变量的值相同。

Copy-Item -Path Variable:processes -Destination Variable:old_processes

删除变量

此命令从当前会话中删除 serv 变量。 可以在任何 PowerShell 驱动器中使用此命令。

Remove-Variable -Path Variable:serv

使用 -Force 参数删除变量

此命令从当前会话中删除除 Options 属性值为 的 Constant变量之外的所有变量。 -Force如果没有 参数,该命令不会删除其 Options 属性的值为 的ReadOnly变量。

Remove-Item Variable:* -Force

将变量的值设置为 NULL

此命令使用 Clear-Item cmdlet 将变量的值 processes 更改为 NULL。

Clear-Item -Path Variable:processes

使用管道

提供程序 cmdlet 接受管道输入。 可以使用管道通过将提供程序数据从一个 cmdlet 发送到另一个提供程序 cmdlet 来简化任务。 若要详细了解如何将管道与提供程序 cmdlet 配合使用,请参阅本文中提供的 cmdlet 参考。

获取帮助

从 Windows PowerShell 3.0 开始,你可以获取有关提供程序 cmdlet 的自定义帮助主题,它们介绍了这些 cmdlet 在文件系统驱动器中的行为方式。

若要获取为文件系统驱动器自定义的帮助主题,请在文件系统驱动器中运行 Get-Help 命令,或使用 -PathGet-Help 的 参数指定文件系统驱动器。

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path variable:

另请参阅

about_Variables

about_Automatic_Variables

about_Providers