Что такое булевы литералы в PowerShell?
Булевы литералы в PowerShell
Ответ 1
 $true и $false.
Это константы. Для булевых языков нет литералов уровня.
В зависимости от того, где они вам нужны, вы также можете использовать все, что прибегает к логическому значению, если тип должен быть логическим, например. в вызовах методов, которые требуют булевых (и не имеют противоречивой перегрузки) или условных операторов. Например, большинство ненулевых объектов являются истинными. null, пустые строки, пустые массивы и число 0 являются ложными.
Ответ 2
 [bool]1 и [bool]0 также работает.
Ответ 3
 Просто чтобы добавить больше информации: логические литералы $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 может быть автоматически преобразован в логическое значение. Например, если я запускаю следующую команду:
installmyapp.ps1 -cleanuprequired true
 он не может выполнить скрипт с приведенной ниже ошибкой:
Не удалось обработать преобразование аргумента для параметра 'cleanuprequired'. Невозможно преобразовать значение "System.String" в тип "System.Boolean". Логические параметры принимают только логические значения и числа, такие как $ True, $ False, 1 или 0.