我创建了一个带有字符串的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
}
答案 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
}