GOOGLE ADS

понедельник, 2 мая 2022 г.

Попытка проверить, является ли введенное значение целым числом и выше 1. Не выполняется первое условие.

Надеюсь, вы можете помочь.

У меня есть скрипт, который по сути представляет собой интерактивное меню, использующее функцию переключения. Один из вариантов переключения требует, чтобы пользователь ввел целое число с помощью функции Read-Host, чтобы установить переменную, которая будет использоваться позже в этом блоке скрипта. Я бы хотел, чтобы целое число могло изменять значение несколько раз за один сеанс Powershell.

Я пытаюсь добавить некоторые сообщения об ошибках, чтобы остановить выполнение остальной части скрипта, если значение не является целым числом или меньше 0. Я использую приведенное ниже, но независимо от того, что мой ввод Read-Host всегда будет выдавать первый ошибка. Может ли кто-нибудь сообщить мне, что я делаю неправильно? Благодарю вас!

'16'{
Write-Host `nThis will export results to a CSV file - Please allow time for the report to run`n -BackgroundColor Black -ForegroundColor Yellow
$InactiveDays = Read-Host "`nEnter How Many Inactive Days To Search By`n"
if ($InactiveDays -isnot [int]) {
Write-Host 'You did not provide a number as input'-BackgroundColor Black -ForegroundColor Red
}
elseif ($InactiveDays -lt 1) {
Write-Host 'Enter a value above 1 as input' -BackgroundColor Black -ForegroundColor Red
}
else
{ *Rest of script } }


Решение проблемы

поменять $InactiveDays -isnot [int] на$InactiveDays -notmatch "\d"

Как упоминалось в нескольких комментариях, read-hostвсегда будет возвращаться type string, что означает, что даже если значение равно, 4оно не будет type int.

Однако вы все еще можете взаимодействовать с ним как с целым числом, потому что powershell полиморфен.

Предлагаемая -match "\d"команда вместо этого будет использовать регулярное выражение, чтобы проверить, содержит ли значение только числа, что позволит достичь того, что вы хотели.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...