Логические литералы в PowerShell


каковы логические литералы в PowerShell?

3 66

3 ответа:

$true и $false.

те хоть и являются константами,. Для логических значений не существует литералов уровня языка.

в зависимости от того, где вы нуждаетесь в них, вы также можете использовать все, что принуждение к логическому значению, если тип должен быть логическим, например, в вызовах методов, которые требуют булевых (и не имеют конфликтующей перегрузки) или условных операторов. Например, большинство ненулевых объектов имеют значение true. null, пустые строки, пустые массивы и количество 0 - Это ложь.

[bool]1 и [bool]0 тоже работает.

просто, чтобы добавить больше информации: логические литералы $true и $false также работает как при использовании в качестве параметров командной строки для сценариев PowerShell(PS). Для приведенного ниже сценария PS, который хранится в файле с именем installmyapp.ps1:

param (
    [bool]$cleanuprequired
 )

echo "Batch file starting execution."

теперь, если я должен вызвать этот файл PS из командной строки PS, вот как я могу сделать:

installmyapp.ps1 -cleanuprequired $true

или

installmyapp.ps1 -cleanuprequired 1

здесь 1 и $true эквивалентны. Кроме того,0 и $false есть аналог.

Примечание: никогда не ожидайте, что строковый литерал true может автоматически преобразовываться в boolean. например, если я запускаю ниже команды:

installmyapp.ps1 -cleanuprequired true

он не может выполнить скрипт с ошибкой ниже:

не удается обработать преобразование аргумента по параметру 'cleanuprequired'. Не удается преобразовать значение " система.Строка" тип системы".Логический." Логический параметры принимают только логические значения и числа, такие как $True, $False, 1 или 0.