我想了解 PowerShell 脚本如何处理布尔参数值。
我有一个带有 4 个参数的脚本,其中 2 个是布尔变量。当我运行脚本并将这些参数之一设置为 $False 时,脚本仍然认为该变量设置为 $True。
版本 1:BooleanTest.ps1(使用 BOOLEAN 参数)
param(
[Parameter(Mandatory=$True, Position=1)][string]$param1,
[Parameter(Mandatory=$True, Position=2)][string]$param2,
[Parameter(Mandatory=$True, Position=3)][bool]$param3,
[Parameter(Mandatory=$True, Position=4)][bool]$param4
)
write-output $param1, $param2, $param3, $param4
Run Code Online (Sandbox Code Playgroud)
从命令提示符运行此脚本将返回以下内容:
>BooleanTest.ps1 -param1 "String1" -param2 "String2" -param3 $True -param4 $False
String1
String2
$True
$True
Run Code Online (Sandbox Code Playgroud)
版本 2:BooleanTest.ps1(使用 SWITCH 参数)
param(
[Parameter(Mandatory=$True, Position=1)][string]$param1,
[Parameter(Mandatory=$True, Position=2)][string]$param2,
[switch]$param3,
[switch]$param4
)
write-output $param1, $param2, $param3, $param4
Run Code Online (Sandbox Code Playgroud)
从命令提示符运行此版本将返回:
>BooleanTest.ps1 -param1 "String1" -param2 "String2" -param3:$True -param4:$False
String1
String2
IsPresent
---------
True
False
Run Code Online (Sandbox Code Playgroud)
根据这些试验,我有以下问题: