如何在PowerShell中测试变量是否超过八个字符?

时间:2013-04-28 11:31:58

标签: variables testing powershell

如何测试$ dbUserName中的字符数是否超过8个字符?

我无法找到允许我这样做的命令或一系列命令。我只能找到变量是否为null:

if ($dbUserName) {
    Write-Output " You left Username blank"
    $dbUserName = read-host
}

但我想接下来的测试如下:

if ($dbUserName [String] > 8 ) }
    Write-Output " Please enter more than 8 characters "
    $dbUserName=read-host " Re-enter database user name"
}

2 个答案:

答案 0 :(得分:61)

使用length类型的[String]属性:

if ($dbUserName.length -gt 8) {
    Write-Output "Please enter more than 8 characters."
    $dbUserName = Read-Host "Re-enter database username"
}

请注意,您必须在-gt条件下使用>代替if。 PowerShell使用以下比较运算符来比较值和测试条件:

  • -eq = equals
  • -ne = not equals
  • -lt =小于
  • -gt =大于
  • -le =小于或等于
  • -ge =大于或等于

答案 1 :(得分:1)

您还可以对正则表达式使用-match。例如:

if ($dbUserName -match ".{8}" )
{
    Write-Output " Please enter more than 8 characters "
    $dbUserName=read-host " Re-enter database user name"
}

另外,如果你像我一样喜欢你的花括号,使你的代码块处于相同的水平位置,你可以将它放在一个新的行上,因为它期待一个代码块,它会看下一行。在一些第一个大括号必须与你的命令一致的命令中,你可以使用一个重要的重音标记(`)来告诉powershell将下一行视为一个延续。