Set-Alias

在当前 PowerShell 会话中创建或更改 cmdlet 或其他命令的别名。

语法

Default (默认值)

Set-Alias
    [-Name] <string>
    [-Value] <string>
    [-Description <string>]
    [-Option <ScopedItemOptions>]
    [-PassThru]
    [-Scope <string>]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

说明

该 Set-Alias cmdlet 为 cmdlet 或命令(例如函数、脚本、文件或其他可执行文件)创建或更改别名。 别名是引用 cmdlet 或命令的备用名称。 例如, sal cmdlet 的 Set-Alias 别名。 有关详细信息,请参阅 about_Aliases。

cmdlet 可以有多个别名,但别名只能与一个 cmdlet 相关联。 可用于 Set-Alias 将现有别名重新分配给另一个 cmdlet,或更改别名的属性,例如说明。

创建或更改的 Set-Alias 别名不是永久性的,只能在当前 PowerShell 会话期间使用。 关闭 PowerShell 会话后,将删除别名。

示例

示例 1:为 cmdlet 创建别名

此命令在当前 PowerShell 会话中创建 cmdlet 的别名。

PS> Set-Alias -Name list -Value Get-ChildItem

PS> Get-Alias -Name list

CommandType     Name
-----------     ----
Alias           list -> Get-ChildItem

该 Set-Alias cmdlet 在当前 PowerShell 会话中创建别名。 Name 参数指定别名的名称list。 Value 参数指定别名运行的 cmdlet。

若要运行别名,请在 PowerShell 命令行上键入 list 。

示例 2:将现有别名重新分配给其他 cmdlet

此命令重新分配现有别名以运行其他 cmdlet。

PS> Get-Alias -Name list

CommandType     Name
-----------     ----
Alias           list -> Get-ChildItem

PS> Set-Alias -Name list -Value Get-Location

PS> Get-Alias -Name list

CommandType     Name
-----------     ----
Alias           list -> Get-Location

该 Get-Alias cmdlet 使用 Name 参数显示 list 别名。 别名 list 与 Get-ChildItem cmdlet 相关联。 list运行别名时,将显示当前目录中的项。

cmdlet Set-Alias 使用 Name 参数指定 list 别名。 Value 参数将别名关联到 Get-Location cmdlet。

该 Get-Alias cmdlet 使用 Name 参数显示 list 别名。 别名 list 与 Get-Location cmdlet 相关联。 list运行别名时,将显示当前目录的位置。

示例 3:创建和更改只读别名

此命令创建只读别名。 只读选项可防止对别名进行意外更改。 若要更改或删除只读别名,请使用 Force 参数。

Set-Alias -Name loc -Value Get-Location -Option ReadOnly -PassThru |
    Format-List -Property *
DisplayName         : loc -> Get-Location
Definition          : Get-Location
Options             : ReadOnly
Description         :
Name                : loc
CommandType         : Alias
$Parameters = @{
    Name        =  'loc'
    Value       =  (Get-Location)
    Option      =  'ReadOnly'
    Description =  'Displays the current directory'
    Force       = $true
    PassThru    = $true
}
Set-Alias @Parameters | Format-List -Property *
DisplayName         : loc -> Get-Location
Definition          : Get-Location
Options             : ReadOnly
Description         : Displays the current directory
Name                : loc
CommandType         : Alias

该 Set-Alias cmdlet 在当前 PowerShell 会话中创建别名。 Name 参数指定别名的名称loc。 Value 参数指定Get-Location别名运行的 cmdlet。 Option 参数指定 ReadOnly 值。 PassThru 参数表示别名对象,并将对象向下Format-List发送到 cmdlet。 Format-List 将 Property 参数与星号 (*) 一起使用,以便显示每个属性。 示例输出显示这些属性的部分列表。

别名 loc 随添加两个参数而更改。 说明 添加文本来说明别名的目的。 需要 Force 参数,因为别名是只读的 loc 。 如果未使用 Force 参数,更改将失败。

示例 4:创建可执行文件的别名

此示例在本地计算机上创建可执行文件的别名。

PS> Set-Alias -Name np -Value C:\Windows\notepad.exe

PS> Get-Alias -Name np

CommandType     Name
-----------     ----
Alias           np -> notepad.exe

该 Set-Alias cmdlet 在当前 PowerShell 会话中创建别名。 Name 参数指定别名的名称np。 Value 参数指定路径和应用程序名称C:\Windows\notepad.exe。 该 Get-Alias cmdlet 使用 Name 参数显示 np 别名与 notepad.exe该别名相关联。

若要运行别名,请在 PowerShell 命令行上键入 np 以打开 notepad.exe。

示例 5:使用参数为命令创建别名

此示例演示如何向具有参数的命令分配别名。

可以为 cmdlet 创建别名,例如 Set-Location。 不能为具有参数和值的命令创建别名,例如 Set-Location -Path C:\Windows\System32。 若要为命令创建别名,请创建包含该命令的函数,然后创建该函数的别名。 有关详细信息,请参阅 about_Functions。

function CD32 {Set-Location -Path C:\Windows\System32}

Set-Alias -Name Go -Value CD32

将创建一个名为 CD32 的函数。 该函数使用 Set-Location cmdlet 和 Path 参数来指定目录,C:\Windows\System32。

该 Set-Alias cmdlet 在当前 PowerShell 会话中创建函数的别名。 Name 参数指定别名的名称Go。 Value 参数指定函数的名称。 CD32

若要运行别名,请在 PowerShell 命令行上键入 Go 。 CD32 函数运行并更改目录 C:\Windows\System32。

示例 6:更新现有别名的选项

此示例演示如何使用 Option 参数分配多个选项。

继续上一个示例,将别名 Go 设置为 ReadOnly 和 Private。

Set-Alias -Name Go -Option ReadOnly, Private

别名 Go 应已存在。 运行命令后,无需使用 Force 参数就无法更改别名,并且只能在当前范围内使用。

参数

-Confirm

在运行 cmdlet 之前,提示你进行确认。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:Cf

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Description

指定别名的说明。 可以键入任何字符串。 如果说明包含空格,请将它括在单引号中。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Force

使用 Force 参数更改或删除将 Option 参数设置为 ReadOnly 的别名。

Force 参数无法更改或删除将 Option 参数设置为 Constant 的别名。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Name

指定新别名的名称。 别名可以包含字母数字字符和连字符。 别名不能为数字,例如 123。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:0
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Option

设置别名的 Option 属性值。 诸如并保护别名等ReadOnlyConstant值免受意外更改。 若要查看会话中所有别名的 Option 属性,请键入 Get-Alias | Format-Table -Property Name, Options -AutoSize。

此参数的可接受值如下所示:

  • AllScope - 别名将复制到创建的任何新作用域。
  • Constant - 无法更改或删除。
  • None - 不设置任何选项,并且是默认值。
  • Private - 别名仅在当前范围内可用。
  • ReadOnly - 除非使用 Force 参数,否则无法更改或删除。
  • Unspecified

这些值被定义为以标志为基础的枚举。 可以使用此参数将多个值组合在一起以设置多个标志。 可以将值作为值数组或这些值的逗号分隔字符串传递给 Option 参数。 该 cmdlet 将使用二进制 OR 运算合并这些值。 将值作为数组传递是最简单的选项,还允许对值使用 Tab 补全。

参数属性

类型:ScopedItemOptions
默认值:None
接受的值:AllScope, Constant, None, Private, ReadOnly, Unspecified
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-PassThru

返回一个表示别名的对象。 使用格式 cmdlet,例如 Format-List 显示对象。 默认情况下,Set-Alias 不会生成任何输出。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Scope

指定此别名有效的范围。 默认值为 Local。 有关详细信息,请参阅 about_Scopes。

可接受的值如下所示:

  • Global
  • Local
  • Private
  • Numbered scopes
  • Script

参数属性

类型:String
默认值:Local
接受的值:Global, Local, Private, Numbered scopes, Script
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Value

指定别名运行的 cmdlet 或命令的名称。 Value 参数是别名的 Definition 属性。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:1
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-WhatIf

显示 cmdlet 运行时会发生什么情况。 cmdlet 未能运行。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:无线

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。

输入

None

不能用管道将对象传送到此 cmdlet。

输出

None

默认情况下,此 cmdlet 不返回任何输出。

AliasInfo

使用 PassThru 参数时,此 cmdlet 返回一个代表别名的 AliasInfo 对象。

备注

PowerShell 包含以下与 Set-Alias相关的别名:

  • 所有平台:
    • sal

PowerShell 包括每个 PowerShell 会话中可用的内置别名。 该 Get-Alias cmdlet 显示 PowerShell 会话中可用的别名。

若要创建别名,请使用 cmdlet Set-Alias 或 New-Alias. 在 PowerShell 6 中,若要删除别名,请使用 Remove-Alias cmdlet。 Remove-Item 接受后向兼容性,例如使用早期版本的 PowerShell 创建的脚本。 使用命令,如 Remove-Item -Path Alias:AliasName.

若要创建每个 PowerShell 会话中可用的别名,请将其添加到 PowerShell 配置文件。 有关详细信息,请参阅 about_Profiles。

可以通过执行导出和导入,在另一个 PowerShell 会话中保存和重复使用别名。 若要将别名保存到文件,请使用 Export-Alias。 若要将保存的别名添加到新的 PowerShell 会话,请使用 Import-Alias。