Boolean literals in PowerShell

Powershell

Powershell Problem Overview


What are the Boolean literals in PowerShell?

Powershell Solutions


Solution 1 - Powershell

$true and $false.

Those are constants, though. There are no language-level literals for Booleans.

Depending on where you need them, you can also use anything that coerces to a Boolean value, if the type has to be Boolean, e.g., in method calls that require Boolean (and have no conflicting overload), or conditional statements. Most non-null objects are true, for example. null, empty strings, empty arrays and the number 0 are false.

Solution 2 - Powershell

[bool]1 and [bool]0 also works.

Solution 3 - Powershell

To add more information to already existing answers: The Boolean literals $true and $false also work as is when used as command line parameters for PowerShell scripts. For the below PowerShell script which is stored in a file named installmyapp.ps1:

param (
    [bool]$cleanuprequired
)

echo "Batch file starting execution."

Now if I've to invoke this PowerShell file from a PowerShell command line, this is how I can do it:

installmyapp.ps1 -cleanuprequired $true

OR

installmyapp.ps1 -cleanuprequired 1

Here 1 and $true are equivalent. Also, 0 and $false are equivalent.

Note: Never expect that string literal true can get automatically converted to boolean. For example, if I run the below command:

installmyapp.ps1 -cleanuprequired true

it fails to execute the script with the below error:

> Cannot process argument transformation on parameter 'cleanuprequired'. > Cannot convert value "System.String" to type "System.Boolean". Boolean > parameters accept only Boolean values and numbers, such as $True, > $False, 1 or 0.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionColonel PanicView Question on Stackoverflow
Solution 1 - PowershellJoeyView Answer on Stackoverflow
Solution 2 - PowershellColonel PanicView Answer on Stackoverflow
Solution 3 - PowershellRBTView Answer on Stackoverflow