从命令提示符将布尔参数传递给 PowerShell 脚本

Rohan Timalsina 2022年5月16日
从命令提示符将布尔参数传递给 PowerShell 脚本

PowerShell 脚本是保存在扩展名为 .ps1 的文本文件中的命令集合。PowerShell 按顺序执行这些命令以执行不同的操作。你可以使用 param 语句在 PowerShell 中定义参数。

下面是一个简单的 PowerShell 脚本示例,myscript.ps1,它将值作为用户的输入。

param($a,$b)
if($a -lt $b){
Write-Host "$a is less than $b"
}
else{
Write-Host "$a is not less than $b"
}

你可以使用以下命令传递值并从命令提示符运行上述脚本。

powershell.exe -NoProfile -Command .\myscript.ps1 -a 4 -b 5

输出:

4 is less than 5

如你所见,我们能够从命令提示符将值传递给 PowerShell 脚本。我们将教你从命令提示符将 Boolean 值传递给 PowerShell 脚本。布尔值可以是 TRUEFALSE

使用布尔参数从命令提示符将布尔值传递给 PowerShell 脚本

你可以将参数的数据类型设置为 [bool],以便从命令提示符将布尔值传递给 PowerShell 脚本。

param([int]$a, [bool]$b)
switch($b){
$true {"It is true."}    
$false {"It is false."}
}

布尔参数只接受布尔值和数字,例如 $True$False10

powershell.exe -NoProfile -Command .\myscript.ps1 -a 1 -b $True

输出:

It is true.

尝试 False 值:

powershell.exe -NoProfile -Command .\myscript.ps1 -a 5 -b 0

输出:

It is false.

使用 switch 参数从命令提示符将布尔值传递给 PowerShell 脚本

PowerShell 中的 switch 参数没有值。但是,它本质上是布尔,并通过其存在或不存在来传达布尔 truefalse 值。因此,当存在开关参数时,它具有实际值。并且当一个 switch 参数不存在时,它的值为 false。Switch 参数易于使用,并且优于 Boolean 参数,后者具有不太自然的 PowerShell 语法。

param ([int] $a, [switch] $b)
switch($b){
$true {"The value is $b."}    
$false {"The value is $b."}
}

当 switch 参数存在时:

powershell.exe -NoProfile -Command .\myscript2.ps1 -a 5 -b 1

输出:

The value is True.

当 switch 参数不存在时:

powershell.exe -NoProfile -Command .\myscript2.ps1 -a 5 

输出:

The value is False.
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相关文章 - PowerShell Boolean