Powershell 2.0函数帮助参数检查

时间:2017-07-12 20:13:01

标签: validation powershell parameters

背景:
这是一个参数验证,它在powershell 2.0上运行 没有升级WMF的选项。我的问题是...... 如果两个参数都为空,则显示指定参数,如果只有P1为空,则显示另一个,如果P2为空,则显示另一个,如果两个都被占用,则显示另一个。我无法找到一种方法让它正常工作...... 请帮忙

Function checkParam
{
    write-verbose "Parameter Validation"
    If ("Lzu","Mlv","Irv" -Contains $MoveDBsTo)
        {$param1=1}
    else{$param1=0}

    If (1,2,3 -Contains $SelectedPref)
        {$param2=1}
    else{$param2=0}

    If ($param1 -and $param2 -eq 0)
        {
        $ErrorParams4 = @{
                     Message="SYNTAX ERROR: `n Specify a parameter"
                     Category="InvalidData"
                    }
        Write-error @ErrorParams4
        $paramsEmpty=1
        Exit
        }

    If ($param1 -eq 0 -and $param2 -ne 1)
        {
        $ErrorParams1 = @{
                         Message="SYNTAX ERROR: `n Check syntax: -MoveDBsto [Lzu, Mlv, Irv]"
                         Category="InvalidData"
                        }
        $param1=2
        Write-error @ErrorParams1
        Exit
        }

    If ($param2 -eq 0 -and $param1 -ne 1)
        {
        $ErrorParams2 = @{
                     Message="SYNTAX ERROR: `n Check syntax: -SelectedPref [1,2,3]" 
                     Category="InvalidData"
                    }
        $param2=2
        Write-error @ErrorParams2
        Exit
        }

    If ($param1 + $param2 -eq 2)
        {
        $ErrorParams3 = @{
                         Message="SYNTAX ERROR: `n Specify only one parameter" 
                         Category="InvalidData"
                        }
        Write-error @ErrorParams3
        Exit
        }
}

checkParam

0 个答案:

没有答案