Windows Powershell 别名

2019-09-30 14:59:50刘景俊

 
new-alias -name gh -value get-help
 
你可以在命令中就好像你使用的完整的cmdlet名称和各种参数一样, 来使用这个别名.
 
例如, 取得Get-WmiObject cmdlet的详细信息, 你只要输入:
 
get-help get-wmiobject -detailed
 
或者
 
gh get-wmiobject -detailed
 
保存别名
你创建的别名只在当前的会话(session)有效. 要在不同的会话中使用别名, 你必须把别名的定义写入你的Windows PowerShell配置文件, 或者使用Export-Alias将别名存储到文件里.
 
查找别名
要在当前控制台上显示所有别名, 包括Windows PowerShell预定义的别名, 你的Windows PowerShell配置文件中定义的别名, 你在当前会话创建的别名, 只要输入:
 
get-alias
 
如果需要特定的别名, 通过为Get-Alias指定Name参数即可. 例如, 要取得"p"开头的别名, 输入
 
get-alias -name p*
 
要查找特定cmdlet的所有别名, 可以输入:
 
get-alias | where-object {$_.Definition -eq "<cmdlet-name>"}
 
例如:
 
get-alias | where-object {$_.Definition -eq "Remove-Item"}
 

为带有参数的命令创建别名

你可以为cmdlet, 脚本, 函数, 或者可执行文件赋予别名. 但是你不能为带有参数的命令设置别名. 例如, 你能够为"Get-Eventlog"设置别名, 但是你不能为"Get-Eventlog -logname security"设置别名.
 
你只能通过创建一个包含该命令的函数来解决这个问题. 例如, 如下命令创建一个叫做”seclog"的函数, 此函数可以表示"get-eventlog -logname security”命令.
 
function seclog {get-eventlog -logname security}
 
现在你可以输入用名字"seclog"来简化之前的命令, 你还可以为函数"seclog"创建别名.
 
关于函数的信息, 输入:
 
get-help about_function
 

别名对象

Windows PowerShell别名实际是类System.Management.Automation.AliasInfo的实例对象. 关于对象类型信息, 参见MSDN 中"AliasInfo Class"的主题.
 
要查看别名对象上的属性和方法, 首先取得别名对象, 并且通过管道传递给Get-Member cmdlet. 例如,
 
get-alias | get-member
 
要查看特定别名的属性值, 例如别名"dir", 取得该别名并通过管道传递给Format-List cmdlet. 例如, 如下代码首先取得别名"dir"对象, 通过管道传递给Format-List cmdlet, 通过对Format-List的参数Property赋值为所有 (*), 来显示别名"dir"的所有属性.
 
get-alias -name dir | format-list -property *
 
WINDOWS POWERSHELL别名PROVIDER

Windows PowerShell别名provider(译者注: 一个Provider就类似于用户使用的文件系统目录结构, 微软开发人员通过MVC这种设计思想, 将变量, 注册表, 别名等资源的管理, 抽象为文件系统的管理. 这样用户可以使用统一的语法对各种资源进行访问. PowerShell开发人员, 也能为PowerShell扩展其他的Provider.) , 使得在Windows PowerShell中, 查看别名就像浏览文件系统驱动器一样.