提供者名称
变量
驱动器
Variable:
Capabilities
ShouldProcess
简短说明
提供对 PowerShell 变量及其值的访问。
详细说明
使用 PowerShell 变量 提供程序,可以在当前控制台中获取、添加、更改、清除和删除 PowerShell 变量。
PowerShell 变量 提供程序支持 PowerShell 创建的变量,包括自动变量、首选项变量和创建的变量。
变量 驱动器是一个仅包含变量对象的平面命名空间。 变量没有子项。
Variable 提供程序支持以下 cmdlet,本文会进行介绍。
此外,PowerShell 还包括一组专门用于查看和更改变量的 cmdlet。 使用 变量 cmdlet 时,无需在名称中指定 Variable: 驱动器。 本文不介绍如何使用 Variable cmdlet。
注意
还可以使用 PowerShell 表达式分析器来创建、查看和更改变量的值,而无需使用 cmdlet。 直接使用变量时,使用美元符号($)将名称标识为变量,赋值运算符(=)来建立和更改其值。
例如,$p = Get-Process 创建 p 变量,并将 Get-Process 命令的结果存储在其中。
此提供程序公开的类型
变量可以是多种不同类型的变量之一。 大多数变量将是 PSVariable 类的实例。 下面列出了其他变量及其类型。
-
?变量是QuestionMarkVariable类的实例。 -
null变量是NullVariable类的实例。 - 最大计数变量是
SessionStateCapacityVariable类的实例。 -
LocalVariable实例包含有关当前执行的信息,例如:MyInvocationPSCommandPathPSScriptRootPSBoundParametersargsinput
导航变量驱动器
变量 提供者在 Variable: 驱动器中公开其数据存储。 若要使用变量,可以将位置更改为 Variable: 驱动器(Set-Location Variable:),也可以从任何其他 PowerShell 驱动器工作。 若要从其他位置引用变量,请使用路径中的驱动器名称(Variable:)。
Set-Location Variable:
若要返回到文件系统驱动器,请键入驱动器名称。 例如,键入:
Set-Location C:
还可以从任何其他 Variable 驱动器使用该证书提供程序。 若要从其他位置引用变量,请使用路径中的驱动器名称 Variable:。
注意
PowerShell 使用别名来让你熟悉如何使用提供程序路径。
dir 和 ls 等命令现在是 Get-ChildItem的别名,cd 则是 Set-Location的别名。
pwd 是 Get-Location的别名。
显示变量的值
获取当前会话中的所有变量
此命令获取当前会话中所有变量及其值的列表。 可以从任何 PowerShell 驱动器使用此命令。
Get-ChildItem -Path Variable:
使用变量的提供程序路径获取变量
此命令使用以美元符号 ($) 为前缀的提供程序路径检索变量值。 这与使用美元符号($)为变量名称添加前缀的效果相同。
$Variable:HOME
使用通配符获取变量
此命令获取名称以“Max”开头的变量。 可以从任何 PowerShell 驱动器使用此命令。
Get-ChildItem -Path Variable:Max*
获取 ? 的值 变量
此命令使用 -LiteralPath 的 参数从 ? 驱动器中获取 Variable: 变量的值。
? 是路径中的通配符,但 Get-ChildItem 不会尝试解析 -LiteralPath 参数值中的任何通配符。
Get-ChildItem -LiteralPath ?
Get ReadOnly 和 Constant 变量
此命令获取 ReadOnly 属性值为 Constant 或 的变量。
Get-ChildItem -Path Variable: |
Where-Object {
$_.Options -match 'Constant' -or
$_.Options -match 'ReadOnly'
} |
Format-List -Property Name, Value, Options
创建变量
创建新变量
此命令创建 services 变量,并将 Get-Service 命令的结果存储在其中。 由于当前位置位于 Variable: 驱动器中,因此 -Path 参数的值是一个点(.),表示当前位置。
Get-Service 命令周围的括号可确保在创建变量之前执行该命令。 如果没有括号,新变量的值是“Get-Service”字符串。
New-Item -Path . -Name services -Value (Get-Service)
使用绝对路径创建变量
此命令创建一个 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 命令,或使用 -Path 的 参数来指定文件系统驱动器。
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Variable: