PowerShell命令参数验证(PowerShell cmdlet parameter valid

2019-07-21 11:30发布

我正在写一个自定义的PowerShell命令,我想知道这是为了确认参数的正确方法。
我认为,这既可以在属性set访问或执行cmdlet过程中完成:

[Cmdlet(VerbsCommon.Add,"X")]
public class AddX : Cmdlet {

    private string _name;

    [Parameter(
        Mandatory=false,
        HelpMessage="The name of the X")]
    public string name {
        get {return _name;}
        set {
            // Should the parameter be validated in the set accessor?
            if (_name.Contains(" ")) { 
                // call ThrowTerminatingError
            }
            _name = value;
        }
    }

    protected override void ProcessRecord() {
        // or in the ProcessRecord method?
        if (_name.Contains(" ")) {
            // call ThrowTerminatingError
        }
    }
}

这是“标准”的做法? 物业二传手,ProcessRecord或完全不同的东西?

Answer 1:

如果可能的话,它的优选的参数由运行时通过指定进行验证的验证属性的参数的定义。

Windows PowerShell中可以验证通过多种方式向小命令参数的参数。 的Windows PowerShell可以验证长度,范围,和参数的字符的图案。 它可以验证的参数可用数量(计数)。



文章来源: PowerShell cmdlet parameter validation