主题 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