web-dev-qa-db-fra.com

Comment puis-je vérifier qu'une variable comporte plus de huit caractères dans PowerShell?

Comment tester si le nombre de caractères dans $ dbUserName est supérieur à huit caractères?

Je suis incapable de localiser une commande ou une série de commandes qui me permettront de le faire. J'ai seulement pu trouver si la variable est nulle:

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

Mais j'aimerais tester ensuite comme ceci:

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

Utilisez la propriété length de la [String] _ type:

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

Veuillez noter que vous devez utiliser -gt au lieu de > dans votre if condition. PowerShell utilise les éléments suivants opérateurs de comparaison pour comparer les valeurs et les conditions de test:

  • -eq = est égal à
  • -ne = pas égal
  • -lt = moins de
  • -gt = plus grand que
  • -le = inférieur ou égal
  • -ge = supérieur ou égal
68
Ravi Thapliyal

Vous pouvez également utiliser -match contre une expression régulière. Ex:

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

De plus, si vous êtes comme moi et que vos accolades se trouvent dans la même position horizontale que vos blocs de code, vous pouvez le placer sur une nouvelle ligne, car il attend un bloc de code, il sera affiché à la ligne suivante. Dans certaines commandes où la première accolade doit être alignée avec votre commande, vous pouvez utiliser un marqueur d’accent Grave (`) pour indiquer à powershell de traiter la ligne suivante comme une continuation.

1
user3524477