在目前的 Windows PowerShell 工作階段建立或變更 cmdlet 或其他命令元素的別名 (交替名稱)。

語法

Set-Alias [-Name] <string> [-Value] <string> [-Description <string>] [-Force] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>]

描述

Set-Alias Cmdlet 會建立或變更 Cmdlet 或命令元素 (例如函數、指令碼、檔案或其他執行檔) 的別名 (交替名稱)。您也可以使用 Set-Alias,將目前的別名重新指派給新的命令,或變更別名的任何屬性 (例如其描述)。除非您將別名加入 Windows PowerShell 設定檔,否則對別名所做的變更將會在結束工作階段或關閉 Windows PowerShell 時遺失。

參數

-Description <string>

指定別名的描述。可輸入任意字串。如果描述中包含空格,請將其置於引號內。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Force

允許此 Cmdlet 設定唯讀的別名。請使用 Option 參數來建立唯讀的別名。Force 參數無法設定常數別名。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Name <string>

指定新別名。別名可使用任意英數字元,但第一個字元不可以是數字。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Option <ScopedItemOptions>

設定別名的 Options 屬性值。

有效的值包括:

-- None:不設定選項。(預設值)。

-- ReadOnly:無法變更別名的屬性,除非使用 Force 參數。您可以使用 Remove-Item 刪除別名。

-- Constant:無法刪除別名,而且無法變更別名的屬性。只有建立別名時才能使用 Constant。既有的別名無法將選項變更為 Constant。

-- Private:別名僅可在 Scope 參數所指定的範圍內使用。在其餘所有範圍內,別名均為不可見。

-- AllScope:將別名複製到所有新建立的範圍。

若要查看別名的 Options 屬性,請輸入 "Get-Alias | Format-Table -property Name, Definition, Options -autosize"。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-PassThru

傳回代表別名的物件。根據預設,此 Cmdlet 不會產生任何輸出。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Scope <string>

指定此別名仍屬有效的範圍。有效的值包括 "Global"、"Local"、"Script" 或相對於目前範圍的數字 (從 0 到範圍總數,其中 0 代表目前範圍,1 代表其上層)。預設值為 "Local"。如需詳細資訊,請參閱 about_Scopes。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Value <string>

指定要建立別名的 cmdlet 或命令元素的名稱。

必要?

true

位置?

2

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Confirm

在執行命令前先提示確認。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-WhatIf

說明執行命令時將會發生何種情況,但不會實際執行命令。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

您無法經由管道將輸入輸出至這個 Cmdlet。

輸出

無或 System.Management.Automation.AliasInfo

當您使用 PassThru 參數時,Set-Alias 會產生代表別名的 System.Management.Automation.AliasInfo 物件。否則,這個 Cmdlet 不會產生任何輸出。

附註

別名是 cmdlet 或命令元素的交替名稱或暱稱。若要執行 cmdlet,您可以使用其全名或任何有效的別名。如需詳細資訊,請參閱 about_Aliases。

若要建立新的別名,請使用 Set-Alias 或 New-Alias。若要刪除別名,請使用 Remove-Item。

cmdlet 可以有多個別名,但是別名一次只能與一個 cmdlet 相關聯。如果您使用 set-alias 將別名與不同的 Cmdlet 產生關聯,這個別名就不再與原來的 Cmdlet 有關聯。

您可以建立 cmdlet 的別名,但是無法為帶有參數及值的命令建立別名。例如,您可以建立 Set-Location 的別名,但是無法為 "Set-Location C:\Windows\System32" 建立別名。若要建立命令的別名,請先建立包含命令的函數,然後建立該函數的別名。

若要儲存某個工作階段中的別名,然後在不同的工作階段中使用這些別名,請將 set-alias 命令加入至 Windows PowerShell 設定檔。預設情況下,設定檔並不存在。若要在 $profile 變數儲存的路徑中建立設定檔,請輸入 "New-Item -type file -force $profile"。若要查看 $profile 變數的值,請輸入 "$profile"。

您也可以使用 Export-Alias,從工作階段將別名複製到檔案來儲存別名,然後使用 Import-Alias 將這些別名加入至新工作階段的別名清單。

您也可以利用內建的別名 "sal" 來參照 Set-Alias。如需詳細資訊,請參閱 about_Aliases。

範例 1

C:\PS>set-alias -name list -value get-childitem

描述
-----------
這個命令會為 Get-ChildItem Cmdlet 建立別名 "list"。建立別名後,您可以在命令列及指令碼中使用 "list" 取代 "Get-ChildItem"。






範例 2

C:\PS>set-alias list get-location

描述
-----------
這個命令會將別名 "list" 與 Get-Location Cmdlet 產生關聯。如果 "list" 是另一個 Cmdlet 的別名,這個命令會變更其關聯,使得它現在變成 Get-Location 專屬的別名。

這個命令使用與前一個範例的命令相同的格式,但是省略了選擇性參數名稱 -Name 和 -Value。當您省略參數名稱時,這些參數的值必須在命令中依照指定的順序出現。在此例中,-Name 的值 ("list") 必須是第一個參數,而 -Value 的值 ("get-location") 則必須是第二個參數。






範例 3

C:\PS>set-alias scrub remove-item -option readonly -passthru | format-list

描述
-----------
這個命令會將別名 "scrub" 與 Remove-Item Cmdlet 產生關聯。它使用 "ReadOnly" 選項,防止別名遭到刪除或被指派給另一個 cmdlet。

PassThru 參數會指示 Windows PowerShell,透過管線將代表新別名的物件傳遞給 Format-List Cmdlet。如果省略 PassThru 參數,這個 Cmdlet 就沒有要顯示的輸出 (在清單中或以其他方式顯示)。






範例 4

C:\PS>Set-Alias np c:\windows\notepad.exe

描述
-----------
這個命令將別名 "np" 與「記事本」的執行檔產生關聯。命令完成後,若要從 Windows PowerShell 命令列開啟「記事本」,只需輸入 "np" 即可。

這個範例表明,您可以為 cmdlet 以外的執行檔和元素建立別名。

若要讓命令更能普遍適用,您可以使用 "Windir" 環境變數 (${env:windir}) 來代表 C\Windows 目錄。此命令的一般形式為 "set-alias np ${env:windir}\notepad.exe"。






範例 5

C:\PS>function CD32 {set-location c:\windows\system32}

C:\PS>set-alias go cd32

描述
-----------
這些命令顯示如何指派別名給帶有參數的命令,甚或給許多命令的管線。

您可以建立 cmdlet 的別名,但是無法為包含 cmdlet 及其參數的命令建立別名。不過,如果將命令放在函數或指令碼中,則可以先建立有用的函數或指令碼名稱,再為函數或指令碼建立一或多個別名。

在這個範例中,使用者想要為命令 "set-location c:\windows\system32" 建立別名,其中 "set-location" 是 Cmdlet,而 "C:\Windows\System32" 則是 Path 參數的值。

為此目的,第一個命令建立了名為 "CD32" 的函數,內含 Set-Location 命令。

第二個命令會為 CD32 函數建立別名 "go"。然後,若要執行 Set-Location 命令,使用者可輸入 "CD32" 或 "go"。






請參閱




目錄