Mic*_*ens 25 powershell compatibility attributes
作为一个喜欢彻底记录的人,我很高兴发现SupportsWildcards
PowerShell V3中添加的属性等.我已根据需要在我的库中使用该属性修饰参数.从长远来看,没有问题,但在短期内仍有很多人因各种原因使用V2(包括我在一个环境中).
仅仅因为一个属性,我的某些功能无法再在PowerShell V2中运行,这似乎很愚蠢.所以我正在寻找一种方法来模拟V2中的属性,实质上将其变成"无操作".
我认为,解决方案需要两个部分:
我正在寻找两个部分的指导,之前没有玩过自定义属性.
也许你可以试试这个。
Add-Type @"
public class CustomAttribute : System.Attribute
{
public bool SupportSomething { get; set; }
}
"@
function Do-Something {
param(
[CustomAttribute(SupportSomething=$true)]
$Command
)
}
$parameters = Get-Command -Name Do-Something | Select-Object -ExpandProperty Parameters
$parameters["Command"].Attributes
Run Code Online (Sandbox Code Playgroud)
然后输出:
SupportSomething : True
TypeId : CustomAttribute
Run Code Online (Sandbox Code Playgroud)
我们首先在 C# 中定义属性,您也可以在 PowerShell 中执行此操作。将属性添加到参数中。然后获取属性列表。请参阅此处了解更多属性示例