Alias 提供程序

应用到: Windows PowerShell 4.0

提供程序名称

别名

驱动器

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 名词(Invoke-Item 除外)的所有 cmdlet。此外,它还支持 Get-ContentSet-Content cmdlet。Alias 提供程序不支持具有 ItemProperty 名词的 cmdlet。此外,Alias 提供程序不支持任何 cmdlet 中的 Filter 参数。

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

功能

ShouldProcess

示例

访问 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: 驱动器中时,Options 参数才在 New-Item cmdlet 中可用。

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 cmdlet 获取所有别名。管道运算符 (|) 将结果发送到 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。Force 参数是必需的,因为“gp”别名的 Options 属性的值已设置为 ReadOnly。因为该命令是从 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。并且,其 Option 属性值为 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 属性的值。

描述

无选项。此值为默认值。

Constant

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

Private

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

ReadOnly

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

AllScope

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

支持的 Cmdlet:

See Also

Other Resources

about_Aliases
about_Providers