PowerShell 4.0
是否可以为.Net类创建PowerShell别名?它对我不起作用:
New-Alias -Force -Name someClass -Value [CompanyName.AppName.SomeNamespace.ClassName]
答案 0 :(得分:2)
总是有 using 语句:
using assembly System.Windows.Forms
using namespace System.Windows.Forms
[MessageBox]::Show('Hello')
答案 1 :(得分:1)
如有疑问,请阅读documentation:
别名是cmdlet或命令元素的备用名称或昵称,例如函数,脚本,文件或可执行文件。您可以在任何Windows PowerShell命令中使用别名而不是命令名。
类既不是cmdlet,也不是函数/脚本/可执行文件,因此它们不能别名。
您可以做的是定义custom type accelerators,但是:
[PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators')::Add('mydate', 'System.DateTime')
([accelerators]::Add()
在我测试时对我不起作用)
答案 2 :(得分:0)
试试这个: (确保首先加载 System.Windows.Forms)
$Accelerators=[PowerShell].Assembly.GetType("System.Management.Automation.TypeAccelerators")
$Accelerators::add("myKey","System.Windows.Forms.SendKeys")
$Accelerators::add("myTB","System.Windows.Forms.TextBox")
在 PowerShell 3.0 Win7(x64) 和 5.0 (Win10,x64) 上测试过,你可以试试 4.0.