about_Alias_Provider

提供程序名称

Alias

驱动器

Alias:

功能

ShouldProcess

简短说明

提供对 PowerShell 别名及其所代表的值的访问权限。

详细说明

通过 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 等命令现在是 Windows 上的别名,dir 在 Linux 和 macOS 上是 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: 驱动器创建别名

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

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

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

使用绝对路径创建别名

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

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

创建新函数的别名

你可以为任意函数创建别名。 可使用此功能创建一个包括 cmdlet 及其参数的别名。

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

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

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

更改别名

更改别名的选项

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

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

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

更改引用的命令别名

此命令使用 Set-Item cmdlet 更改 gp 别名,使其代表的是 Get-Process cmdlet 而不是 Get-ItemProperty cmdlet。 -Force 参数是必需的,因为 gp 别名的 Options 属性值设置为 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-Location cmdlet 创建新的 push 别名。

创建新别名时,其 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 属性值为 ReadOnly 的别名。

Remove-Item Alias:* -Force

动态参数

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

Options [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 命令,或使用 Get-Help-Path 参数来指定文件系统驱动器。

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path alias:

另请参阅