Set-Alias
在当前 PowerShell 会话中创建或更改 cmdlet 或其他命令的别名。
语法
Set-Alias
[-Name] <string>
[-Value] <string>
[-Description <string>]
[-Option <ScopedItemOptions>]
[-PassThru]
[-Scope <string>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
cmdlet Set-Alias
创建或更改 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
cmdlet Set-Alias
在当前 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
cmdlet Get-Alias
使用 Name 参数显示 list
别名。 别名 list
与 Get-ChildItem
cmdlet 相关联。 list
运行别名时,将显示当前目录中的项。
cmdlet Set-Alias
使用 Name 参数指定 list
别名。 Value 参数将别名关联到 Get-Location
cmdlet。
cmdlet Get-Alias
使用 Name 参数显示 list
别名。 别名 list
与 Get-Location
cmdlet 相关联。 list
运行别名时,将显示当前目录的位置。
示例 3:Create并更改只读别名
此命令创建只读别名。 只读选项可防止对别名进行意外更改。 若要更改或删除只读别名,请使用 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
cmdlet Set-Alias
在当前 PowerShell 会话中创建别名。 Name 参数指定别名的名称 loc
。 Value 参数指定Get-Location
别名运行的 cmdlet。 Option 参数指定 ReadOnly 值。 PassThru 参数表示别名对象,并将对象向下发送到 cmdlet Format-List
管道。 Format-List
使用带有星号的 Property 参数 (*
) 以便显示每个属性。 示例输出显示这些属性的部分列表。
别名 loc
会随着添加两个参数而更改。 说明 添加文本以说明别名的用途。 需要 Force 参数, loc
因为别名是只读的。 如果未使用 Force 参数,则更改将失败。
示例 4:将别名Create可执行文件
此示例为本地计算机上的可执行文件创建别名。
PS> Set-Alias -Name np -Value C:\Windows\notepad.exe
PS> Get-Alias -Name np
CommandType Name
----------- ----
Alias np -> notepad.exe
cmdlet Set-Alias
在当前 PowerShell 会话中创建别名。 Name 参数指定别名的名称 np
。 Value 参数指定路径和应用程序名称 C:\Windows\notepad.exe
。 cmdlet Get-Alias
使用 Name 参数来显示 np
别名与 notepad.exe
关联。
若要运行别名,请在 PowerShell 命令行上键入 np
以打开 notepad.exe
。
示例 5:使用参数Create命令的别名
此示例演示如何向具有参数的命令分配别名。
可以为 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
。
cmdlet Set-Alias
为当前 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 之前进行确认。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
指定对别名的描述。 你可以键入任意字符串。 如果说明包含空格,请将其括在单引号中。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
使用 Force 参数更改或删除 将 Option 参数设置为 ReadOnly 的别名。
Force 参数不能更改或删除将 Option 参数设置为 Constant 的别名。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
指定新别名的名称。 别名可以包含字母数字字符和连字符。 别名不能是数字,例如 123。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Option
设置别名的 Option 属性值。 和 等ReadOnly
Constant
值保护别名免受意外更改。 若要查看会话中所有别名的 Option 属性,请键入 Get-Alias | Format-Table -Property Name, Options -Autosize
。
此参数的可接受值如下所示:
AllScope
- 别名将复制到创建的任何新范围。Constant
- 无法更改或删除。None
- 不设置任何选项,是默认值。Private
- 别名仅在当前范围内可用。ReadOnly
- 除非使用 Force 参数,否则无法更改或删除。Unspecified
这些值定义为基于标志的枚举。 可以使用此参数将多个值组合在一起以设置多个标志。 这些值可以作为值的数组或这些值的逗号分隔字符串传递给 Option 参数。 cmdlet 使用二进制 OR 操作组合这些值。 将值作为数组传递是最简单的选项,还允许对值使用 Tab 补全。
Type: | ScopedItemOptions |
Accepted values: | AllScope, Constant, None, Private, ReadOnly, Unspecified |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
返回一个表示别名的对象。 使用格式 cmdlet(如 ) Format-List
显示对象。 默认情况下, Set-Alias
不会生成任何输出。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
指定此别名的有效范围。 默认值为 Local。 有关详细信息,请参阅 about_Scopes。
可接受的值如下所示:
Global
Local
Private
Numbered scopes
Script
Type: | String |
Accepted values: | Global, Local, Private, Numbered scopes, Script |
Position: | Named |
Default value: | Local |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
指定别名运行的 cmdlet 或命令的名称。 Value 参数是别名的 Definition 属性。
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
None
无法通过管道将对象传递给此 cmdlet。
输出
None
默认情况下,此 cmdlet 不返回任何输出。
使用 PassThru 参数时,此 cmdlet 将返回一个代表别名的 AliasInfo 对象。
备注
PowerShell 包含以下别名 Set-Alias
:
- 所有平台:
sal
PowerShell 包括每个 PowerShell 会话中可用的内置别名。 cmdlet Get-Alias
显示 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
。