從命令提示符將布林引數傳遞給 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.
作者: Rohan Timalsina