從命令提示符將布林引數傳遞給 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