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