提供者名稱
Alias
磁碟機
Alias:
簡短描述
提供對 Windows PowerShell 別名及其代表值的存取權。
詳細描述
Windows PowerShell Alias 提供者可以用來取得、新增、變更、清除和刪除 Windows PowerShell 中的別名。
別名是指 Cmdlet、函數或可執行檔的交替名稱。Windows PowerShell 包含一組內建的別名。而且,您可以將自己的別名新增至目前的工作階段和 Windows PowerShell 設定檔。
Alias 提供者是指僅包含別名物件的一般命名空間。別名沒有子項目。
每個別名都是 System.Management.Automation.AliasInfo 類別的執行個體。
Alias 提供者會在 Alias: 磁碟機中公開其資料存放區。若要使用別名,您可以使用下列命令,將目前的位置變更為 Alias: 磁碟機:
Set-Location alias:
或者,您也可以從任何其他 Windows PowerShell 磁碟機執行工作。若要從其他位置參考別名,請在路徑中使用磁碟機名稱 Alias:。
Windows PowerShell 包括了一組設計用來檢視和變更別名的 Cmdlet:
Export-Alias
Get-Alias
Import-Alias
New-Alias
Set-Alias
使用這些 Cmdlet 時,並不需要在名稱中指定 Alias: 磁碟機。
Alias 提供者支援具有 Item 名詞的所有 Cmdlet,但 Invoke-Item Cmdlet 除外。此外,它也支援 Get-Content 和 Set-Content Cmdlet。Alias 提供者不支援具有 ItemProperty 名詞的 Cmdlet。而且,Alias 提供者不支援任何 Cmdlet 中的 Filter 參數。
別名的所有變更都只會影響目前的工作階段。若要儲存這些變更,請將變更新增至 Windows PowerShell 設定檔。或者,請使用 Export-Alias 和 Import-Alias Cmdlet。
範例
切換到 Alias: 磁碟機
-------------------------- 範例 1 --------------------------
這個命令會將目前位置切換到 Alias: 磁碟機。您可以在 Windows PowerShell 中從任何的磁碟機執行此命令。若要返回檔案系統磁碟機,請輸入磁碟機名稱。例如,請輸入 "set-location c:"。
set-location alias:
取得別名
-------------------------- 範例 1 --------------------------
這個命令會取得目前工作階段中所有別名的清單。您可以在任何的 Windows PowerShell 磁碟機上執行此命令。
get-item -path alias:
-------------------------- 範例 2 --------------------------
這個命令會取得 "ls" 別名。因為它包含路徑,所以您可以在任何 Windows PowerShell 磁碟機中使用它。
get-item -path alias:ls
如果您的位置是在 Alias: 磁碟機,就可以在路徑中省略磁碟機名稱。
-------------------------- 範例 3 --------------------------
這個命令會取得與 Get-ChildItem Cmdlet 相關聯的別名清單。它會使用用來儲存 Cmdlet 名稱的 Definition 屬性。
get-item -path alias:* | where-object {$_.Definition -eq "Get-Childitem"}
當有別名的項目是可執行檔時,Definition 就會包含該檔案的完整路徑。
-------------------------- 範例 4 --------------------------
這個命令會取得目前位置為 Alias: 磁碟機時所有別名的清單。它會使用萬用字元 (*) 來指出目前位置的所有內容。
get-item -path *
在 Alias: 磁碟機中的點 (.) 代表目前的位置,而萬用字元 (*) 代表目前位置中的所有項目,這兩種表示方式會產生相同作用。例如,"get-item -path ." 或 "get-item *" 會產生相同的結果。
建立新別名
-------------------------- 範例 1 --------------------------
這個命令會為 Get-Service Cmdlet 建立別名 "serv"。因為目前的位置是 Alias: 磁碟機,所以 Path 參數的值是點 (.)。該點代表目前位置。
這個命令也會使用 Options 動態參數設定別名上的 AllScope 和 Constant 選項。只有當您位於 Alias: 磁碟機時,才能在 New-Item Cmdlet 中使用 Options 參數。
new-item -path . -name serv -value Get-Service -Options "AllScope,Constant"
如果您的位置是在 Alias: 磁碟機,就可以在路徑中省略磁碟機名稱。
-------------------------- 範例 2 --------------------------
您可以為任何呼叫命令的項目建立別名。這個命令會為 Notepad.exe 建立別名 "np"。
new-item -path alias:np -value c:\windows\notepad.exe
-------------------------- 範例 3 --------------------------
您可以為任何函數建立別名。您可以使用這項功能,建立同時包含 Cmdlet 及其參數的別名。
第一個命令會建立 CD32 函數,此函數會將目前目錄變更為 System32 目錄。第二個命令會為 CD32 函數建立別名 "go"。分號 (;) 是命令分隔符號。
當此命令執行完成時,您就可以使用 "CD32" 或 "go" 來叫用此函數。
function CD32 {set-location -path c:\windows\system32} set-item -path alias:go -value CD32
顯示別名的屬性和方法
-------------------------- 範例 1 --------------------------
這個命令會使用 Get-Item Cmdlet 來取得所有別名。管線運算子 (|) 會將結果傳送至 Get-Member Cmdlet,再由後者顯示物件的方法和屬性。
get-item -path alias:* | get-member
當您經由管道將物件的集合 (例如 Alias: 磁碟機中的別名集合) 輸出至 Get-Member 時,Get-Member 就會個別評估集合中的每個物件。然後,Get-Member 會傳回它所找到之每種物件類型的相關資訊。如果所有物件都屬於同一類型,則傳回單一物件類型的相關資訊。在這個範例中,所有別名都是 AliasInfo 物件。 若要取得 AliasInfo 物件集合的相關資訊,請使用 Get-Member 的 InputObject 參數。例如,請使用下列命令: Get-Member -InputObject (Get-Item alias:*) 當您使用 InputObject 時,Get-Member 就會評估集合,而非評估集合中的物件。
-------------------------- 範例 2 --------------------------
這個命令會列出 "dir" 別名的屬性值。它會使用 Get-Item Cmdlet 來取得代表 "dir" 別名的物件。管線運算子 (|) 會將結果傳送至 Format-List 命令。Format-List 命令會使用 Property 參數搭配萬用字元 (*) 來格式化並顯示所有 "dir" 別名屬性的值。
get-item alias:dir | format-list -property *
變更別名的屬性
-------------------------- 範例 1 --------------------------
您可以使用 Set-Item Cmdlet 搭配 Options 動態參數來變更別名的 Options 屬性值。
這個命令會為 "dir" 別名設定 AllScope 和 ReadOnly 選項。此命令會使用 Set-Item Cmdlet 的 Options 動態參數。只有當您搭配 Alias 或 Function 提供者使用 Set-Item 時,才可以在其中使用 Options 參數。
set-item -path alias:dir -options "AllScope,ReadOnly"
-------------------------- 範例 2 --------------------------
這個命令會使用 Set-Item Cmdlet 來變更 "gp" 別名,讓它代表 Get-Process Cmdlet 而非 Get-ItemProperty Cmdlet。因為 "gp" 別名的 Options 屬性值設定為 ReadOnly,所以 Force 參數為必要項。此外,因為這個命令是從 Alias: 磁碟機內部所提交,所以路徑中並未指定磁碟機。
set-item -path gp -value get-process -force
這項變更會影響到 4 個定義此別名和命令之間關聯性的屬性。若要檢視變更的影響,請輸入下列命令: get-item -path gp | format-list -property *
-------------------------- 範例 3 --------------------------
這個命令會使用 Rename-Item Cmdlet,將 "popd" 別名變更為 "pop"。
rename-item -path alias:popd -newname pop
複製別名
-------------------------- 範例 1 --------------------------
這個命令會複製 pushd 別名,以便針對 Push-Location Cmdlet 建立新的 push 別名。
copy-item -path alias:pushd -destination alias:push
建立新的別名時,其 Description 屬性具有 Null 值。而且,其 Option 屬性具有 None 值。 如果此命令是從 Alias: 磁碟機內部所提交,您就可以在 Path 參數值中省略磁碟機名稱。
刪除別名
-------------------------- 範例 1 --------------------------
這個命令會從目前的工作階段中刪除 serv 別名。您可以在任何的 Windows PowerShell 磁碟機上執行此命令。
remove-item -path alias:serv
如果您的位置是在 Alias: 磁碟機,就可以在路徑中省略磁碟機名稱。
-------------------------- 範例 2 --------------------------
這個命令會刪除開頭為 "s" 的別名。它不會刪除唯讀的別名。
clear-item -path alias:s*
-------------------------- 範例 3 --------------------------
這個命令會從目前的工作階段中刪除所有別名,但是 Options 屬性值為 Constant 的別名除外。如果沒有使用 Force 參數,此命令就不會刪除 Options 屬性值為 ReadOnly 的別名。
remove-item alias:* -force
動態參數
動態參數是 Cmdlet 參數,由 Windows PowerShell 提供者所新增,只有在已啟用提供者之磁碟機上的 Cmdlet 方可使用。
Options <System.Management.Automation.ScopedItemOptions>
決定別名的 Options 屬性值。
Value | Description |
---|---|
None |
沒有選項此值為預設值。 |
Constant |
無法刪除別名,且無法變更別名的屬性。只有建立別名時才能使用 Constant。既有的別名無法將選項變更為 Constant。 |
Private |
別名只會顯示於目前範圍 (不會顯示於子範圍)。 |
ReadOnly |
您無法變更別名的屬性,除非使用 Force 參數。您可以使用 Remove-Item 刪除別名。 |
AllScope |
將別名複製到所有新建立的範圍。 |
所支援的 Cmdlet
請參閱