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

powershell, testing, variables

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 (`>=`)

Problem

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" } ```

Original source