是否可以为.Net类创建别名?

问题描述 投票:0回答:3

PowerShell 4.0

是否可以为 .Net 类创建 PowerShell 别名?这对我不起作用:

New-Alias -Force -Name someClass -Value [CompanyName.AppName.SomeNamespace.ClassName]
powershell alias powershell-4.0
3个回答
4
投票

如有疑问,请阅读文档

别名是 cmdlet 或命令元素(例如函数、脚本、文件或可执行文件)的备用名称或昵称。您可以在任何 Windows PowerShell 命令中使用别名而不是命令名称。

类既不是 cmdlet,也不是函数/脚本/可执行文件,因此它们不能使用别名。

您可以做的是定义自定义类型加速器,不过:

[PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators')::Add('mydate', 'System.DateTime')

[accelerators]::Add()
当我测试它时对我不起作用)


3
投票

总是有using语句:

using assembly System.Windows.Forms
using namespace System.Windows.Forms
[MessageBox]::Show('Hello')

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.

© www.soinside.com 2019 - 2024. All rights reserved.