从命令提示符将布尔参数传递给 PowerShell 脚本
Rohan Timalsina
2022年5月16日
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 脚本。布尔值可以是 TRUE
或 FALSE
。
使用布尔参数从命令提示符将布尔值传递给 PowerShell 脚本
你可以将参数的数据类型设置为 [bool]
,以便从命令提示符将布尔值传递给 PowerShell 脚本。
param([int]$a, [bool]$b)
switch($b){
$true {"It is true."}
$false {"It is false."}
}
布尔参数只接受布尔值和数字,例如 $True
、$False
、1
或 0
。
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
参数没有值。但是,它本质上是布尔
,并通过其存在或不存在来传达布尔 true
或 false
值。因此,当存在开关参数时,它具有实际值。并且当一个 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.
Author: Rohan Timalsina