检查powershell函数的输入

时间:2016-03-24 10:36:49

标签: powershell

我创建了一个带有字符串的powershell函数。我试图验证字符串参数的字符数是否超过4,但每当我检查参数时,计数总是1.可以有人建议

function DeleteSitesWithPrefix($prefix){

    if([string]::IsNullOrEmpty($prefix)){
        Write-Host "Please provide the name of the csv file to use"
        return
    }

    if([string]::$prefix.Length -lt 4){
        Write-Host "Please provide a prefix of 4 or more digits"
        return
    }

2 个答案:

答案 0 :(得分:3)

考虑使用validation attributes重写您的功能:

function DeleteSitesWithPrefix
{
    Param(
        [Parameter(Mandatory = $true)]
        [ValidateScript({$_.Length -ge 4})]
        [ValidateNotNullOrEmpty()]
        [string]$Prefix
    )

    # Do stuff...
}

答案 1 :(得分:0)

[string]::表示调用字符串的静态方法,但$prefix.Length不是这样的方法。

这将有效:

if($prefix.Length -lt 4){
    Write-Host "Please provide a prefix of 4 or more digits"
    return
}