Set-Alias
在当前 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 将这些别名添加到新会话的别名列表中。
还可以使用 Set-Alias 的内置别名“sal”来对其进行引用。有关详细信息,请参阅 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”与 Notepad 的可执行文件相关联。完成此命令后,若要从 Windows PowerShell 命令行中打开 Notepad,则只需键入“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”。