Search code examples
variablestestingpowershell

How can I test that a variable is more than eight characters in PowerShell?


How do test if the number of characters in $dbUserName is more than eight characters?

I have been unable to locate a command or series of commands that will let me do this. I have only been able to find if the variable is null:

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

But I would like to next test like this:

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

Solution

  • Use the length property of the [String] type:

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

    Please note that you have to use -gt instead of > in your if condition. PowerShell uses the following comparison operators to compare values and test conditions:

    • -eq = equals (==)
    • -ne = not equals (!=)
    • -lt = less than (<)
    • -gt = greater than (>)
    • -le = less than or equals (<=)
    • -ge = greater than or equals (>=)