Как проверить, что переменная содержит более восьми символов в 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"
}
Ответы
Ответ 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 для обработки следующей строки как продолжения.