about_Variables
主题
about_Variables
简短说明
说明变量如何存储可用于 Windows PowerShell 的值。
详细说明
变量是存储值的内存单元。在 Windows PowerShell 中,变量用以美元符号 ($) 开头的单字文本字符串表示,
例如 $a、$process 或 $my_var。
在 Windows PowerShell 中,有几种不同类型的变量。
-- 用户创建的变量:用户创建的变量由用户创建和维护。默认情况下,在 Windows PowerShell 命令行中创建
的变量只在 Windows PowerShell 窗口打开时存在。关闭该窗口后,变量也不再存在。
若要保存变量,请将其添加到 Windows PowerShell 配置文件中。此外,还可以在脚本中创建具有全局、脚
本或局部作用域的变量。
-- 自动变量:自动变量存储 Windows PowerShell 的状态。这些变量由 Windows PowerShell 创建,
Windows PowerShell 根据需要更改变量值以保持其准确性。用户不能更改这些变量的值。
例如,$PSHome 变量存储 Windows PowerShell 安装目录的路径。有关自动变量的详细信息、列表和说明,
请参阅 about_Automatic_Variables。
-- 首选项变量:首选项变量存储 Windows PowerShell 的用户首选项。这些变量由 Windows PowerShell
创建,并以默认值填充。用户可以更改这些变量的值。例如,MaximumHistoryCount 可确定会话历史记录中的
最大条目数。有关首选项变量的详细信息、列表和说明,请参阅 about_Preference_Variables。
使用变量
若要列出 Windows PowerShell 会话中的全部变量,请键入:
get-variable
若要显示任意变量的值,请键入该变量的名称(以美元符号 ($) 开头)。Windows PowerShell 通过显示其值进
行响应。
$<variable-name>
例如:
PS> $pshome
C:\Windows\System32\WindowsPowerShell\v1.0
若要创建新变量或更改变量的值,请使用以下格式的赋值语句:
$<variable> = <value>
例如:
PS> $my-variable = 1, 2, 3
或
PS> $VerbosePreference = "Continue"
若要获取表示变量的对象,请使用 Get-Variable 命令,例如:
PS> get-variable pid
若要使用变量,请在命令或表达式中键入变量名称(包括美元符号 ($))。如果命令或表达式没有用引号引起,或
者是用双引号 (") 引起的,则变量的值用于命令或表达式。如果命令是用单引号 (') 引起的,则变量名称用于表
达式。
例如,第一条命令获取 $profile 变量的值,该值是 Windows PowerShell 用户配置文件的路径。第二条命令
在记事本中打开该文件。
PS> $profile
C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS> Notepad $profile
可以在变量中存储任何类型的对象,包括表示进程、服务、事件日记和计算机的整数、字符串、数组和哈希表。
保存变量
您创建的变量只在创建该变量的会话中可用。关闭会话时变量将丢失。
若要保存变量,请将其添加到 Windows PowerShell 配置文件中。
配置文件中的变量将添加到打开的所有 Windows PowerShell 会话中。
例如,若要在每个 Windows PowerShell 会话中更改 $VerbosePreference 变量的值,请将以下命令添加
到 Windows PowerShell 配置文件中。
$VerbosePreference = "Continue"
可以通过在文本编辑器(如记事本)中打开配置文件添加此命令,也可以使用 Add-Content 命令将此命令添加
到配置文件中,如下所示。
以下命令将 $VerbosePreference 变量的新值添加到"CurrentUser,AllHosts"配置文件中。
add-content -path $profile.CurrentUserAllHosts -value '$VerbosePreference = "Continue"'
有关 Windows PowerShell 配置文件的详细信息,请参阅 about_profiles。
含特殊字符的变量名称
可以使用大括号强制 Windows PowerShell 按字面解释变量名称。在创建或引用包含特殊字符(如短划线、句
点、冒号或圆括号)的变量名称时,这尤其有用。
若要创建包含连字符的变量名称,请用大括号将变量名称括起来。以下命令创建名称为"save-items"的变量。
C:\PS> ${save-items} = "a", "b", "c"
C:\PS>${save-items}
a
b
c
若要引用包含圆括号的变量名称,请用大括号将变量名称括起来。
例如,以下命令获取"ProgramFiles(x86)"环境变量的目录存储中的子项。
C:\PS> Get-childitem ${env:ProgramFiles(x86)}
若要引用包含大括号的变量名称,请用大括号将变量名称括起来,并使用倒引号(转义)字符转义
大括号。例如,若要创建名称为"this{value}is"、值为 1 的变量,请键入:
C:\PS> ${this`{value`}is} = 1
C:\PS> ${this`{value`}is}
1
VARIABLE: 驱动器
Windows PowerShell 包含 Variable: 驱动器,其形式和功能都与文件系统驱动器相似,不过它包含的是会话
中的变量。
若要转到变量驱动器,请键入:
set-location variable:
(或"cd variable:")
在 Variable 驱动器中时,若要列出该驱动器中的项目(变量),请使用 Get-ChildItem cmdlet。例如:
get-childitem
(或者,"dir"或"ls")
有关 Variable: 驱动器和 Windows PowerShell Variable 提供程序的详细信息,请键入:
get-help variable
另请参阅
about_Automatic_Variables
about_Environment_Variables
about_Preference_Variables
about_Scopes