小编XMa*_*pot的帖子

PowerShell 脚本中的布尔参数值

我想了解 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)

根据这些试验,我有以下问题:

  • 在版本 1 中,为什么当我将第四个变量声明为 …

powershell boolean-operations

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

boolean-operations ×1

powershell ×1