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