共用方式為


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 會以顯示其值的方式回應。

       $<變數名稱>

    例如:

        PS> $pshome
        C:\Windows\System32\WindowsPowerShell\v1.0


    若要建立新的變數或變更變數的值,請以下列格式來使用指派陳述式:

        $<變數> = <值>

    例如:

        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: 磁碟機,其外觀及作用如同檔案系統磁碟機,
     但其中含有工作階段中的變數。 

     若要切換到 Variable 磁碟機,請輸入:

        set-location variable:
        
         (或是 "cd variable:")

     
     在 Variable 磁碟機時,若要列出其中的項目 (變數),請使用 Get-ChildItem 
     Cmdlet。 例如:

         get-childitem

         (或是 "dir" 或 "ls")
     
     如需 Variable: 磁碟機和 Windows PowerShell 變數提供者的詳細資訊,請輸入:

         get-help variable


請參閱
    about_Automatic_Variables
    about_Environment_Variables
    about_Preference_Variables
    about_Scopes