共用方式為


about_Environment_Variables

主題
    about_Environment_Variables

簡短描述
    描述如何在 Windows PowerShell 中存取 Windows 環境變數。
    

完整描述
    環境變數儲存著作業系統環境的相關資訊。這些資訊包括作業系統路徑、作業系統使
    用的處理器數目,以及暫存資料夾的位置等詳細資料。

    環境變數所儲存的資料可供作業系統及其他程式使用。例如,WINDIR 環境變數包含
    了 Windows 安裝目錄的位置。程式只要查詢此變數的值,即可得知 Windows 作業系
    統檔案所在位置。

    Windows PowerShell 可以用來檢視和變更 Windows 環境變數,包括在登錄中設定的
    變數,以及針對特定工作階段所設定的變數。Windows PowerShell 環境提供者可以簡
    化檢視和變更環境變數的處理程序。
    
    與 Windows PowerShell 中其他類型的變數不同,環境變數及其值會由子工作階段 
    (例如本機背景工作) 以及其中執行模組成員的工作階段所繼承。這使環境變數非常
    適合儲存父工作階段和子工作階段中所需的值。
   

  Windows PowerShell 環境提供者
      Windows PowerShell 環境提供者讓您可在 Windows PowerShell 中,從 Windows 
      PowerShell 磁碟機 (Env: 磁碟機) 存取 Windows 環境變數。這個磁碟機與檔案
      系統磁碟機看來很類似。若要切換到 Env: 磁碟機,請輸入:


      set-location env:


      接著,若要顯示 Env: 磁碟機的內容,請輸入:


      get-childitem


      您可以從任何其他 Windows PowerShell 磁碟機切換到 Env: 磁碟機來檢視環境變
      數,也可以進入 Env: 磁碟機來檢視和變更環境變數。


  環境變數物件  
      在 Windows PowerShell 中,每個環境變數都是以物件表示,也就是 
      System.Collections.DictionaryEntry 類別的執行個體。

    
      在每個 DictionaryEntry 物件中,環境變數的名稱就是字典索引鍵。變數的值就
      是字典值。


      若要在 Windows PowerShell 中顯示環境變數,請先取得代表變數的物件,然後顯
      示物件屬性的值。使用與 DictionaryEntry 物件關聯的各種方法即可在 
      Windows PowerShell 中變更環境變數。


      若要在 Windows PowerShell 中顯示代表環境變數之物件的屬性和方法,請使用 
      Get-Member Cmdlet。
      例如,若要顯示 Env: 磁碟機上所有物件的方法和屬性,請輸入:


      get-item -path env:* | get-member


  顯示環境變數
      您可以使用包含 Item 名詞 (Item Cmdlet) 的 Cmdlet 來顯示及變更環境變數的
      值。由於環境變數沒有子項目,所以 Get-Item 和 Get-ChildItem 會產生相同的
      輸出。


      參照環境變數時,請輸入 Env: 磁碟機名稱再加上變數的名稱。例如,若要顯示 
      COMPUTERNAME 環境變數的值,請輸入:


      get-childitem env:computername


      若要顯示所有環境變數的值,請輸入:


      get-childitem env:


      根據預設,Windows PowerShell 會依擷取的順序顯示環境變數。若要讓環境變數
      的清單依變數名稱排序,請將 Get-ChildItem 命令的輸出傳送給 Sort-Object 
      Cmdlet。例如,您可從任何 Windows PowerShell 磁碟機輸入:


      get-childitem env: | sort name


      您也可以使用 Set-Location Cmdlet 進入 Env: 磁碟機:


      set-location env:


      當您位在 Env: 磁碟機上時,可以在路徑中省略 Env: 磁碟機名稱。例如,若要顯
      示所有的環境變數,請輸入:


      get-childitem


      若要從 Env: 磁碟機內部顯示 COMPUTERNAME 變數的值,請輸入:


      get-childitem computername


      您也可以不使用 cmdlet,而改用 Windows PowerShell 運算式剖析器顯示及變更環
      境變數的值。若要顯示環境變數的值,請使用下列語法:


      $env:<變數名稱>


      例如,若要顯示 WINDIR 環境變數的值,請在 Windows PowerShell 命令提示字元
      輸入下列命令:


      $env:windir


      在這個語法中,貨幣符號 ($) 表示變數,磁碟機名稱則表示環境變數。


  變更環境變數
      若要對環境變數進行永久變更,請使用 [控制台] 的 [系統] ([進階] 索引標籤或
      [進階系統設定] 項目) 儲存登錄中的變更。

      當您變更 Windows PowerShell 中的環境變數時,該變更只會影響目前的工作階段。
      這項行為與 Windows 環境中的 Set 命令及 UNIX 環境中的 Setenv 命令行為類似。

      您也必須擁有變更變數值的權限。若您沒有足夠的權限而試圖變更值,命令就會失
      敗且 Windows PowerShell 將顯示錯誤。

      您可以不使用 Cmdlet,而改用下列語法變更變數的值:


          $env:<變數名稱> = "<新值>"


      例如,若要將 ";c:\temp" 附加到 Path 環境變數的值後面,請使用下列語法:


      $env:path = $env:path + ";c:\temp"
    

      也可以使用 Item Cmdlet (例如,Set-Item、Remove-Item 和 Copy-Item) 來變更
      環境變數的值。例如,若要使用 Set-Item Cmdlet 將 ";c:\temp" 附加到 Path
      環境變數的值後面,請使用下列語法:


          set-item -path env:path -value ($env:path + ";c:\temp")

    
      在此命令中,新值置於括號中,所以會解譯為一個單位。


  儲存對環境變數的變更
      若要在每個 Windows PowerShell 工作階段中建立或變更環境變數的值,請將變更
      新增到 Windows PowerShell 設定檔。

      例如,若要在每個 Windows PowerShell 工作階段中將 C:\Temp 目錄新增到 Path
      環境變數,請將下列命令新增到 Windows PowerShell 設定檔。

      $env:path = $env:path + ";c:\temp"

      若要將命令新增到現有的設定檔 (例如 CurrentUser,AllHosts 設定檔),請輸入:

      add-content -path $profile.CurrentUserAllHosts -value '$env:path = 
      $env:path + ";c:\temp"' 

  儲存喜好設定的環境變數
      Windows PowerShell 功能可以使用環境變數來儲存使用者喜好設定。這些變數的
      功能與喜好設定變數相同,但會由建立時所在的工作階段的子工作階段繼承。如
      需喜好設定變數的詳細資訊,請參閱 about_preference_variables。

      儲存喜好設定的環境變數包括:

        PSModulePath
            儲存預設模組目錄的路徑。當您未指定模組的完整路徑時,
            Windows PowerShell 會在指定的目錄中尋找模組。

            $env:PSModulePath 的預設值為:

                $home\Documents\WindowsPowerShell\Modules; $pshome\Modules

            Windows PowerShell 會在登錄中設定 "$pshome\Modules" 的值。
            每次您啟動 Windows PowerShell 時,它就會設定 
            "$home\Documents\WindowsPowerShell\Modules" 的值。

            此外,在其他目錄 (例如 Program Files 目錄) 中安裝模組的安裝程式會
            將其位置附加到 PSModulePath 的值 

            若要變更預設的模組目錄,請變更 PSModulePath 環境變數的值。

            例如,若要將 "C:\ps-test\Modules" 目錄新增到 PSModulePath 環境變數
            的值,請輸入:

                $env:PSModulePath = $env:PSModulePath + ";c:\ps-test\Modules"

            命令中的分號 (;) 是用於在清單中分隔新路徑與其前面的路徑。

            除非您在設定檔中新增變更值的命令,或使用 [控制台] 中的 [系統] 變更
            登錄中 PSModulePath 環境變數的值,否則您的變更只會影響目前的工作階
            段。
            
            如需詳細資訊,請參閱 about_Modules。


請參閱
    Environment (提供者)