about_Alias_Provider
提供程序名称
Alias
驱动器
Alias:
功能
ShouldProcess
简短说明
提供对 PowerShell 别名及其所代表的值的访问权限。
详细说明
通过 PowerShell Alias 提供程序,你可以获取、添加、更改、清除和删除 PowerShell 中的别名。
一 alias 个是 cmdlet、函数、可执行文件(包括脚本)的备用名称。 PowerShell 包含一组内置别名。 可以将自己的别名添加到当前会话和 PowerShell 配置文件。
驱动器 Alias 是仅 alias 包含对象的平面命名空间。 这些别名没有子项。
Alias 提供程序支持本文中介绍的以下 cmdlet。
PowerShell 包括一组用于查看并更改别名的 cmdlet。 使用 Alias cmdlet 时,无需在名称中指定 Alias:
驱动器。 本文不介绍如何使用 Alias cmdlet。
此提供程序公开的类型
每个alias实例都是 System.Management.Automation.AliasInfo 类的实例。
导航 Alias 驱动器
Alias 提供程序在 Alias:
驱动器中公开其数据存储。 若要使用别名,可以使用以下命令将位置更改为 Alias:
驱动器:
Set-Location Alias:
若要返回到文件系统驱动器,请键入驱动器名称。 例如,键入:
Set-Location C:
还可以使用来自任何其他 PowerShell 驱动器的 Alias 提供程序。 若要从其他位置引用, alias 请使用 Alias:
路径中的驱动器名称。
注意
PowerShell 使用别名来让你熟悉如何使用提供程序路径。 诸如 dir
ls
Windows 和 Linux 和 dir
macOS for Get-ChildItem alias cd
等命令现在都是适用于 Set-Location 的命令。 是 pwd
Get-Location 的一个alias。
显示 Alias: 驱动器的内容
此命令获取当前位置为 Alias:
驱动器时所有别名的列表。 它使用通配符 *
指示当前位置的所有内容。
PS Alias:\> Get-Item -Path *
在 Alias:
驱动器中,点 .
(表示当前位置)和通配符 *
(表示当前位置中的所有项)具有相同的效果。 例如,Get-Item -Path .
或 Get-Item \*
生成相同的结果。
Alias 提供程序没有容器,因此上述命令在与 Get-ChildItem
一起使用时具有相同的效果。
Get-ChildItem -Path Alias:
获取所选内容 alias
此命令获取 .ls
alias
因为它包括了路径,所以可以在任一 PowerShell 驱动器中使用它。
Get-Item -Path Alias:ls
如果你在 Alias:
驱动器中,则可以省略路径中的驱动器名称。
还可以使用美元符号($
)为提供程序路径添加前缀来检索definition该alias路径。
$Alias:ls
获取特定 cmdlet 的所有别名
此命令获取与 Get-ChildItem
cmdlet 关联的别名的列表。 它使用 Definition 属性,用于存储 cmdlet 名称。
Get-Item -Path Alias:* | Where-Object {$_.Definition -eq "Get-ChildItem"}
创建别名
alias从 Alias: 驱动器创建
此命令创建 serv
alias Get-Service
cmdlet。 由于当前位置位于 Alias:
驱动器中,因此不需要 -Path
参数。
此命令还使用-Options
动态参数设置 AllScopeoption on 。alias -Options
参数仅当你在 Alias:
驱动器中时才可用于 New-Item
cmdlet。 点 (.
) 指示当前目录,即 alias 驱动器。
PS Alias:\> New-Item -Path . -Name serv -Value Get-Service -Options "AllScope"
alias使用绝对路径创建
可以为调用命令的任何项创建一个 alias 。
此命令创建 np
alias for Notepad.exe
.
New-Item -Path Alias:np -Value c:\windows\notepad.exe
alias创建到新函数
可以为任何函数创建一个 alias 。 可以使用此功能创建一个 alias 包含 cmdlet 及其参数的函数。
第一个命令创建 CD32
函数,以将当前目录更改为 System32
目录。 第二个命令创建 go
alias 函数 CD32
。
命令完成后,可以使用 CD32
或 go
来调用函数。
function CD32 {Set-Location -Path c:\windows\system32}
Set-Item -Path Alias:go -Value CD32
更改别名
更改选项 alias
可以将 Set-Item
cmdlet 与动态参数一起使用-Options
,以更改属性alias的值-Options
。
此命令设置 AllScope ..的 ReadOnly 选项dir
alias。 该命令使用 Set-Item
cmdlet 的 -Options
动态参数。 -Options
参数在与 Alias 或 Function 提供程序配合使用时,才可用于 Set-Item
。
Set-Item -Path Alias:dir -Options "AllScope,ReadOnly"
更改引用的命令别名
此命令使用 Set-Item
cmdlet 更改 gp
alias ,以便它表示 Get-Process
cmdlet 而不是 Get-ItemProperty
cmdlet。
参数-Force
是必需的,因为选项属性gp
alias的值设置为 ReadOnly
。 由于命令是从 Alias:
驱动器内提交的,因此未在路径中指定该驱动器。
Set-Item -Path gp -Value Get-Process -Force
此更改会影响定义与命令之间的 alias 关联的四个属性。 若要查看更改的效果,请键入以下命令:
Get-Item -Path gp | Format-List -Property *
重命名 alias
此命令使用 Rename-Item
cmdlet 更改 popd
alias 到 pop
。
Rename-Item -Path Alias:popd -NewName pop
复制 alias
此命令将复制 pushd
alias 该命令,以便 push
alias 为 Push-Location
cmdlet 创建新项。
alias创建新项时,其 Description 属性具有 null 值。
并且其 Option 属性的值为 None
。 如果命令从 Alias:
驱动器内部发出,则可以从 -Path
参数的值中省略驱动器名称。
Copy-Item -Path Alias:pushd -Destination Alias:push
删除 alias
此命令从 serv
alias 当前会话中删除该命令。
你可以在任何 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]
确定选项alias属性的值。
- None:无选项。 此值为默认值。
- Constantalias:无法删除,并且无法更改其属性。 Constant仅在创建 .alias 不能将option现有aliasConstant项更改为 。
- Private:仅在 alias 当前范围内可见,不在子范围中。
- ReadOnly:除非使用
-Force
参数,否则无法更改其属性alias。 可用于Remove-Item
删除 .alias - AllScope:将 alias 复制到创建的任何新作用域。
支持的 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: