it-swarm.com.de

Wie kann ich testen, ob eine Variable mehr als acht Zeichen in PowerShell enthält?

Wie prüfe ich, ob die Anzahl der Zeichen in $ dbUserName mehr als acht Zeichen beträgt?

Ich konnte keinen Befehl oder eine Reihe von Befehlen finden, mit denen ich dies ausführen kann. Ich konnte nur feststellen, ob die Variable null ist:

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

Aber ich würde den nächsten Test gerne so machen:

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

Verwenden Sie die length -Eigenschaft von [String] Art:

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

Bitte beachten Sie, dass Sie -gt anstatt > in Ihrem if Zustand. PowerShell verwendet die folgenden Vergleichsoperatoren, um Werte und Testbedingungen zu vergleichen:

  • -eq = gleich
  • -ne = nicht gleich
  • -lt = weniger als
  • -gt = größer als
  • -le = kleiner als oder gleich
  • -ge = größer als oder gleich
68
Ravi Thapliyal

Sie können -match auch für einen regulären Ausdruck verwenden. Ex:

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

Auch wenn Sie wie ich sind und möchten, dass sich Ihre geschweiften Klammern für Ihre Codeblöcke in derselben horizontalen Position befinden, können Sie dies in eine neue Zeile einfügen, da ein Codeblock erwartet wird, der in der nächsten Zeile angezeigt wird. In einigen Befehlen, in denen die erste geschweifte Klammer mit Ihrem Befehl übereinstimmen muss, können Sie eine Gravur-Akzent-Markierung (`) verwenden, um Powershell anzuweisen, die nächste Zeile als Fortsetzung zu behandeln.

1
user3524477