about_Alias_Provider

提供者名称

Alias

驱动器

Alias:

Capabilities

ShouldProcess

详细说明

通过 PowerShell Alias 提供程序,你可以获取、添加、更改、清除和删除 PowerShell 中的别名。

别名是 cmdlet、函数、可执行文件(包括脚本)的备用名称。 PowerShell 包含一组内置别名。 可以将自己的别名添加到当前会话和 PowerShell 配置文件。

Alias 驱动器是一个仅包含别名对象的平面命名空间。 这些别名没有子项。

Alias 提供程序支持本文中介绍的以下 cmdlet。

PowerShell 包括一组用于查看并更改别名的 cmdlet。 使用 Alias cmdlet 时,无需在名称中指定 Alias: 驱动器。 本文不介绍如何使用 Alias cmdlet。

此提供程序公开的类型

每个别名都是 System.Management.Automation.AliasInfo 类的实例。

Alias 提供程序在 Alias: 驱动器中公开其数据存储。 若要使用别名,可以使用以下命令将位置更改为 Alias: 驱动器:

Set-Location Alias:

若要返回到文件系统驱动器,请键入驱动器名称。 例如,键入:

Set-Location C:

还可以使用来自任何其他 PowerShell 驱动器的 Alias 提供程序。 若要从其他位置引用别名,请使用路径中的 Alias: 驱动器名称。

注意

PowerShell 使用别名来让你熟悉如何使用提供程序路径。 dirls 等命令现在是 Get-ChildItem的别名,cdSet-Location的别名,pwdGet-Location的别名。

显示 Alias: 驱动器的内容

此命令获取当前位置为 Alias: 驱动器时所有别名的列表。 它使用通配符 * 指示当前位置的所有内容。

PS Alias:\> Get-Item -Path *

Alias: 驱动器中,点 .(表示当前位置)和通配符 *(表示当前位置中的所有项)具有相同的效果。 例如,Get-Item -Path .Get-Item \* 生成相同的结果。

Alias 提供程序没有容器,因此上述命令在与 Get-ChildItem 一起使用时具有相同的效果。

Get-ChildItem -Path Alias:

获取所选别名

此命令获取 ls 别名。 因为它包括了路径,所以可以在任一 PowerShell 驱动器中使用它。

Get-Item -Path Alias:ls

如果你在 Alias: 驱动器中,则可以省略路径中的驱动器名称。

还可以通过使用美元符号 ($) 为提供程序路径添加前缀来检索别名的定义。

$Alias:ls

获取特定 cmdlet 的所有别名

此命令获取与 Get-ChildItem cmdlet 关联的别名的列表。 它使用 Definition 属性,用于存储 cmdlet 名称。

Get-Item -Path Alias:* | Where-Object {$_.Definition -eq "Get-ChildItem"}

创建别名

从 Alias: 驱动器创建别名

此命令为 serv cmdlet 创建 Get-Service 别名。 由于当前位置位于 Alias: 驱动器中,因此不需要 -Path 参数。

此命令还使用 -Options 动态参数在别名上设置 AllScope 选项。 -Options 参数仅当你在 New-Item 驱动器中时才可用于 Alias: cmdlet。 点(.)指示当前目录,即 Alias: 驱动器。

PS Alias:\> New-Item -Path . -Name serv -Value Get-Service -Options "AllScope"

使用绝对路径创建别名

可以为调用命令的任何项创建别名。 此命令为 np创建 Notepad.exe 别名。

New-Item -Path Alias:np -Value C:\windows\notepad.exe

创建新函数的别名

可以为任何函数创建别名。 可以使用此功能创建包含 cmdlet 及其参数的别名。

第一个命令创建 CD32 函数,以将当前目录更改为 System32 目录。 第二个命令为 go 函数创建 CD32 别名。

命令完成后,可以使用 CD32go 来调用函数。

function CD32 {Set-Location -Path C:\windows\system32}
Set-Item -Path Alias:go -Value CD32

更改别名

更改别名的选项

可以将 Set-Item cmdlet 与 -Options 动态参数一起使用,以更改别名 -Options 属性的值。

此命令为 AllScope 别名设置 dir 选项。 该命令使用 -Options cmdlet 的 Set-Item 动态参数。 -Options 参数在与 Set-ItemAlias 提供程序配合使用时,才可用于

Set-Item -Path Alias:dir -Options "AllScope, ReadOnly"

更改引用的命令别名

此命令使用 Set-Item cmdlet 更改 gp 别名,以便它表示 Get-Process cmdlet 而不是 Get-ItemProperty cmdlet。 -Force 参数是必需的,因为 别名的 gp 属性的值设置为 ReadOnly。 由于命令是从 Alias: 驱动器内提交的,因此未在路径中指定该驱动器。

Set-Item -Path gp -Value Get-Process -Force

此更改会影响定义别名与命令之间的关联的四个属性。 若要查看更改的效果,请键入以下命令:

Get-Item -Path gp | Format-List -Property *

重命名别名

此命令使用 Rename-Item cmdlet 将 popd 别名更改为 pop

Rename-Item -Path Alias:popd -NewName pop

复制别名

此命令复制 pushd 别名,以便为 push cmdlet 创建新的 Push-Location 别名。

创建新别名时,其 Description 属性具有 null 值。 并且其 Option 属性的值为 None。 如果命令从 Alias: 驱动器内部发出,则可以从 -Path 参数的值中省略驱动器名称。

Copy-Item -Path Alias:pushd -Destination Alias:push

删除别名

此命令从当前会话中删除 serv 别名。 你可以在任何 PowerShell 驱动器中使用此命令。

Remove-Item -Path Alias:serv

此命令删除以“s”开头的别名。 它不会删除只读别名。

Clear-Item -Path Alias:s*

删除只读别名

此命令从当前会话中删除所有别名,但其 Options 属性的值Constant除外。 该-Force参数允许命令删除其 Options

Remove-Item Alias:* -Force

动态参数

动态参数是由 PowerShell 提供程序添加的 cmdlet 参数,且只可用于在启用了提供程序的驱动器中使用 cmdlet 的情况。

选项 [System.Management.Automation.ScopedItemOptions]

确定别名的 Options 属性的值。

  • None:无选项。 此值为默认值。
  • Constant:无法删除别名,并且无法更改其属性。 仅当创建别名时,Constant 才可用。 不能将现有别名的选项更改为 Constant
  • Private:别名仅在当前作用域中可见,不在子作用域中。
  • ReadOnly:别名的属性不能更改,除非使用 -Force 参数。 可以使用 Remove-Item 删除别名。
  • AllScope:别名复制到任何创建的新作用域。

支持的 cmdlet

使用管道

提供程序 cmdlet 接受管道输入。 可以使用管道将提供程序数据从一个 cmdlet 发送到另一个提供程序 cmdlet 来简化任务。 若要详细了解如何将管道与提供程序 cmdlet 配合使用,请参阅本文中提供的 cmdlet 参考。

获取帮助

从 Windows PowerShell 3.0 开始,你可以获取有关提供程序 cmdlet 的自定义帮助主题,它们介绍了这些 cmdlet 在文件系统驱动器中的行为方式。

若要获取针对文件系统驱动器进行自定义的帮助主题,请在文件系统驱动器中运行 Get-Help 命令,或使用 -Path 参数来指定文件系统驱动器。

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Alias:

另请参阅