Alias Provider

提供程序名称

Alias

驱动器

Alias:

简短说明

提供对 Windows PowerShell 别名以及它们所表示的值的访问。

详细说明

使用 Windows PowerShell Alias 提供程序,您可以获取、添加、更改、清除和删除 Windows PowerShell 中的别名。

别名是 cmdlet、函数或可执行文件的替代名称。Windows PowerShell 包含一系列内置别名。另外,您可以将您自己的别名添加到当前会话以及 Windows PowerShell 配置文件中。

Alias 提供程序是一个仅包含别名对象的平面命名空间。这些别名没有子项。

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

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

Set-Location alias:

或者,您可以从任何其他 Windows PowerShell 驱动器中使用别名。若要从其他位置引用别名,请在路径中使用“Alias:”驱动器名称。

Windows PowerShell 包括一组用于查看和更改别名的 cmdlet:

Export-Alias

Get-Alias

Import-Alias

New-Alias

Set-Alias

在使用这些 cmdlet 时,无需在名称中指定 Alias: 驱动器。

Alias 提供程序支持拥有 Item 名词的所有 cmdlet(Invoke-Item cmdlet 除外)。此外,该提供程序还支持 Get-ContentSet-Content cmdlet。Alias 提供程序不支持拥有 ItemProperty 名词的 cmdlet。此外,该提供程序也不支持任何 cmdlet 中的 Filter 参数。

对别名的所有更改仅会影响当前会话。若要保存更改,请将更改添加到 Windows PowerShell 配置文件中。或者,可以使用 Export-AliasImport-Alias cmdlet。

示例

转到 Alias: 驱动器

-------------------------- 示例 1 --------------------------

此命令将当前位置更改为 Alias: 驱动器。您可以从 Windows PowerShell 的任一驱动器中使用此命令。若要返回到文件系统驱动器,请键入驱动器名称。例如,键入“set-location c:”。

set-location alias:

获取别名

-------------------------- 示例 1 --------------------------

此命令获取当前会话中所有别名的列表。在任何 Windows PowerShell 驱动器中,都可以使用此命令。

get-item -path alias:

-------------------------- 示例 2 --------------------------

此命令获取“ls”别名。由于该别名包含路径,因此可以在任何 Windows PowerShell 驱动器中使用该别名。

get-item -path alias:ls

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

-------------------------- 示例 3 --------------------------

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

get-item -path alias:* | where-object {$_.Definition -eq "Get-Childitem"}

如果有别名的项是可执行文件,则 Definition 包含该文件的完全限定路径。

-------------------------- 示例 4 --------------------------

在当前位置是 Alias: 驱动器时,此命令可获取所有别名的列表。它使用通配符 (*) 来表示当前位置的所有内容。

get-item -path *

在 Alias: 驱动器中,表示当前位置的点 (.) 和表示当前位置中的所有项目的通配符 (*) 具有相同效果。例如,“get-item -path .”与“get-item *”会产生相同的结果。

创建新别名

-------------------------- 示例 1 --------------------------

此命令为 Get-Service cmdlet 创建“serv”别名。由于当前位置位于 Alias: 驱动器中,因此 Path 参数的值为一个点 (.)。点表示当前位置。

此命令还使用 Options 动态参数来设置别名上的 AllScope 和 Constant 选项。只有位于 Alias: 驱动器中时,才能在 New-Item cmdlet 中使用 Options 参数。

new-item -path . -name serv -value Get-Service -Options "AllScope,Constant"

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

-------------------------- 示例 2 --------------------------

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

new-item -path alias:np -value c:\windows\notepad.exe

-------------------------- 示例 3 --------------------------

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

第一个命令创建 CD32 函数,该函数将当前目录更改为 System32 目录。第二个命令为 CD32 函数创建别名“go”。分号 (;) 是命令分隔符。

当该命令完成时,您可以使用“CD32”或“go”调用该函数。

function CD32 {set-location -path c:\windows\system32} set-item -path alias:go -value CD32

显示别名的属性和方法

-------------------------- 示例 1 --------------------------

此命令使用 Get-Item 来获取所有别名。管道运算符 (|) 将结果发送给 Get-Member cmdlet,后者显示该对象的方法和属性。

get-item -path alias:* | get-member

在通过管道将对象集合(例如 Alias: 驱动器中的别名集合)传递给 Get-Member 时,Get-Member 将分别评估该集合中的每个对象。然后 Get-Member 返回它找到的有关每个对象类型的信息。如果所有对象都为同一类型,则它将返回有关该唯一对象类型的信息。在本例中,所有别名均为 AliasInfo 对象。 若要获取有关 AliasInfo 对象集合的信息,请使用 Get-Member 的 InputObject 参数。例如,使用下面的命令: Get-Member -InputObject (Get-Item alias:*) 使用 InputObject 时,Get-Member 将对集合而不是集合中的对象进行评估。

-------------------------- 示例 2 --------------------------

此命令列出了“dir”别名的属性值。此命令使用 Get-Item cmdlet 来获取表示“dir”别名的对象。管道运算符 (|) 将结果发送到 Format-List 命令。Format-List 命令对 Property 参数使用通配符 (*) 来设置所有“dir”别名属性值的格式并显示这些值。

get-item alias:dir | format-list -property *

更改别名的属性

-------------------------- 示例 1 --------------------------

您可以使用 Set-Item cmdlet 以及 Options 动态参数来更改别名的 Options 属性的值。

此命令设置“dir”别名的 AllScope 选项和 ReadOnly 选项。此命令使用 Set-Item cmdlet 的 Options 动态参数。只有在将 Options 参数与 Alias 或 Function 提供程序一起使用时,该参数才在 Set-Item 中可用。

set-item -path alias:dir -options "AllScope,ReadOnly"

-------------------------- 示例 2 --------------------------

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

set-item -path gp -value get-process -force

该更改将影响用于定义别名与命令之间关联的四个属性。若要查看更改的效果,请键入以下命令: get-item -path gp | format-list -property *

-------------------------- 示例 3 --------------------------

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

rename-item -path alias:popd -newname pop

复制别名

-------------------------- 示例 1 --------------------------

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

copy-item -path alias:pushd -destination alias:push

创建该新别名时,其 Description 属性拥有 null 值。另外,其 Options 属性的值为 None。 如果从 Alias: 驱动器中发出该命令,则可以在 Path 参数值中省略驱动器名称。

删除别名

-------------------------- 示例 1 --------------------------

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

remove-item -path alias:serv

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

-------------------------- 示例 2 --------------------------

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

clear-item -path alias:s*

-------------------------- 示例 3 --------------------------

此命令从当前会话中删除所有别名,但 Options 属性值为 Constant 的别名除外。如果不使用 Force 参数,则此命令不删除 Options 属性值为 ReadOnly 的别名。

remove-item alias:* -force

动态参数

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

Options <System.Management.Automation.ScopedItemOptions>

确定别名的 Options 属性的值。

Value Description

None

无选项。此值为默认值。

Constant

无法删除别名,也无法更改其属性。Constant 仅在创建别名时可用。不能将现有别名的选项更改为 Constant。

Private

别名仅在当前作用域(不包含子作用域)中可见。

ReadOnly

除非使用 Force 参数,否则无法更改别名的属性。您可以使用 Remove-Item 来删除别名。

AllScope

别名将复制到创建的所有新作用域中。

支持 Cmdlet

另请参阅

概念

about_aliases
about_providers