Подтвердить что ты не робот

Как проверить, что переменная содержит более восьми символов в PowerShell?

Как проверить, если количество символов в $dbUserName больше восьми символов?

Мне не удалось найти команду или ряд команд, которые позволят мне это сделать. Мне удалось найти только переменную 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"
}
4b9b3361

Ответ 1

Используйте свойство 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 = больше или равно

Ответ 2

Вы также можете использовать -match для регулярного выражения. Пример:

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

Также, если вы похожи на меня и как ваши фигурные скобки находятся в одном и том же горизонтальном положении для ваших кодовых блоков, вы можете поместить это на новую строку, так как он ожидает блок кода, который будет выглядеть на следующей строке. В некоторых командах, где первая фигурная скобка должна быть в соответствии с вашей командой, вы можете использовать маркер серьезного акцента (`), чтобы сказать powershell для обработки следующей строки как продолжения.