当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell If Else 语句检查数字是否在两个值之间

作者:精品下载站 日期:2024-12-14 05:14:44 浏览:15 分类:玩电脑

PowerShell If Else 语句检查数字是否在两个值之间


最近,我正在编写一个 PowerShell 脚本,该脚本想要检查某个数字是否位于 if-else 语句中的两个值之间。我尝试了几个例子。在本教程中,我将向您展示如何检查 PowerShell if-else 语句中的数字是否位于两个值之间

检查 PowerShell If Else 语句中的数字是否介于两个值之间

如果您是 PowerShell 新手,请参阅以下 PowerShell if 语句的语法。

if (condition) {
    # Code to execute if the condition is true
}

条件是一个计算结果为$true$false的表达式。如果条件为 true,则执行大括号 {} 内的代码块。否则,将被跳过。

现在,让我们看看如何在 PowerShell if-else 语句中检查两个值之间的数字。

要确定某个数字是否介于 if-else 语句中的两个值之间,您需要使用比较运算符,例如 -lt(小于)、-le(小于或等于)、-gt(大于)和 -ge(大于或等于)。

让我们看几个例子。

示例 1:基本示例

下面是用于检查数字是否在两个值之间(例如数字是否在 10 到 20 之间)的 PowerShell 脚本:

$number = 15

if ($number -ge 10 -and $number -le 20) {
    Write-Output "The number $number is between 10 and 20."
} else {
    Write-Output "The number $number is not between 10 and 20."
}

在此示例中,我们使用-ge(大于或等于)和-le(小于或等于)运算符来检查是否$number 在 [10, 20] 范围内。

我执行了上面的 PowerShell 脚本,您可以在下面的屏幕截图中看到输出:

[玩转系统] PowerShell If Else 语句检查数字是否在两个值之间

阅读 PowerShell If-Else 字符串比较

示例 2:使用变量作为范围边界

在上面的例子中,我们取了一个固定值,但有时如果该值不固定,我们可以使用变量。

这是有关如何使用范围变量的完整脚本。

$lowerBound = 10
$upperBound = 20
$number = 25

if ($number -ge $lowerBound -and $number -le $upperBound) {
    Write-Output "The number $number is between $lowerBound and $upperBound."
} else {
    Write-Output "The number $number is not between $lowerBound and $upperBound."
}

示例 3:独占范围

如果您想检查一个数字是否严格位于两个值之间(不包括边界)。在这种情况下,您可以使用-gt(大于)和-lt(小于)运算符。

下面是 PowerShell 脚本。

$lowerBound = 10
$upperBound = 20
$number = 10

if ($number -gt $lowerBound -and $number -lt $upperBound) {
    Write-Output "The number $number is strictly between $lowerBound and $upperBound."
} else {
    Write-Output "The number $number is not strictly between $lowerBound and $upperBound."
}

在此示例中,数字 10 不被视为严格介于 10 和 20 之间,因此输出将指示它不在该范围内。

阅读在 PowerShell 中检查字符串是否包含特殊字符

示例 4:验证用户输入

您可能会发现需要在 PowerShell 中输入范围后验证范围的要求。

以下是一个 PowerShell 脚本,提示用户输入年龄,并且您要确保输入的年龄是 0 到 120 之间的有效年龄:

$age = Read-Host "Please enter your age"

if ($age -match '^\d+$' -and [int]$age -ge 0 -and [int]$age -le 120) {
    Write-Output "You entered a valid age: $age."
} else {
    Write-Output "Invalid input. Please enter a number between 0 and 120."
}

在此示例中,我们将 -match 运算符与正则表达式结合使用,以确保输入是数值。然后,我们将输入转换为整数并检查它是否在有效年龄范围内。

您可以在下面的屏幕截图中看到,在要求我输入值后,出现了输出。

[玩转系统] PowerShell If Else 语句检查数字是否在两个值之间

阅读 PowerShell ForEach-Object

示例 5:在 If-Else 语句中过滤两个值之间的数据

下面是一个示例,您有一个美国城市及其人口列表,并且您想要过滤掉人口在 100,000 到 500,000 之间的城市:

以下是完整的 PowerShell 脚本。

$cities = @(
    @{Name = "New York"; Population = 8419600},
    @{Name = "Los Angeles"; Population = 3980400},
    @{Name = "Chicago"; Population = 2716000},
    @{Name = "Houston"; Population = 2328000},
    @{Name = "Phoenix"; Population = 1690000},
    @{Name = "San Antonio"; Population = 1532000},
    @{Name = "San Diego"; Population = 1424000},
    @{Name = "Dallas"; Population = 1343000},
    @{Name = "Austin"; Population = 964000},
    @{Name = "Jacksonville"; Population = 911000}
)

$filteredCities = $cities | Where-Object {
    $_.Population -ge 100000 -and $_.Population -le 500000
}

$filteredCities | ForEach-Object {
    Write-Output "City: $($_.Name), Population: $($_.Population)"
}

在此示例中,我们使用Where-Object cmdlet 根据人口过滤城市。该条件检查人口是否在 100,000 到 500,000 之间。

示例 6:创建范围检查函数

让我们创建一个 PowerShell 函数,用于检查某个数字是否位于 if-else 语句中的两个值之间并返回一个布尔值:

function Is-Between {
    param (
        [int]$Number,
        [int]$LowerBound,
        [int]$UpperBound
    )

    return ($Number -ge $LowerBound -and $Number -le $UpperBound)
}

# Usage example
$number = 45
$lowerBound = 30
$upperBound = 60

if (Is-Between -Number $number -LowerBound $lowerBound -UpperBound $upperBound) {
    Write-Output "The number $number is between $lowerBound and $upperBound."
} else {
    Write-Output "The number $number is not between $lowerBound and $upperBound."
}

上述 PowerShell 函数采用三个参数:要检查的数字、下限和上限。如果数字在范围内,则返回 $true,否则返回 $false

结论

通过上述所有 PowerShell 示例,我希望您了解如何检查 PowerShell if-else 语句中的两个值之间的数字

我还解释了如何创建一个函数来重用逻辑。如果您仍有疑问,请在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯