0
考慮此cmdlet(usings刪除):PowerShell的:parametersets,需要一個或另一個
public class Foo : Cmdlet
{
[Parameter(Mandatory = true, ParameterSetName = "Foo"]
public string A { get; set; }
[Parameter(Mandatory = true, ParameterSetName = "Bar"]
public string B { get; set; }
[Parameter(Mandatory = true, ParameterSetName = "Bar"]
public string C { get; set; }
protected override void ProcessRecord()
{
/* magic goes here */
}
}
現在可以執行此cmdlet的方式如下:
# like this
Foo
# or
Foo -A "test"
# or
Foo -B "test" -C "test"
有A和B不工作,也不使用B(需要C)。
所以這很好,但是我想阻止你可以通過輸入Foo
來執行Cmdlet,現在我可以在代碼中檢查它,但是由於Powershell太棒了,是否有通過運行時強制執行的方法?