ค้นหาเว็บไซต์

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 หากเงื่อนไขเป็นจริง ระบบจะดำเนินการบล็อกโค้ดภายในเครื่องหมายปีกกา {} มิฉะนั้นจะถูกข้ามไป

ตอนนี้ให้เราตรวจสอบวิธีการตรวจสอบตัวเลขระหว่างสองค่าในคำสั่ง PowerShell if-else

หากต้องการทราบว่าตัวเลขอยู่ระหว่างสองค่าในคำสั่ง if-else หรือไม่ คุณต้องใช้ตัวดำเนินการเปรียบเทียบ เช่น -lt (น้อยกว่า), -le (น้อยกว่า หรือ เท่ากับ), -gt (มากกว่า) และ -ge (มากกว่าหรือเท่ากับ)

ให้เราตรวจสอบตัวอย่างบางส่วน

ตัวอย่างที่ 1: ตัวอย่างพื้นฐาน

ด้านล่างนี้คือสคริปต์ PowerShell เพื่อตรวจสอบว่าตัวเลขอยู่ระหว่างสองค่าหรือไม่ เช่น ตัวเลขอยู่ระหว่าง 10 ถึง 20:

$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

ตัวอย่างที่ 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 สำหรับแต่ละวัตถุ

ตัวอย่างที่ 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 หรือไม่

ฉันยังได้อธิบายวิธีสร้างฟังก์ชันเพื่อนำตรรกะกลับมาใช้ใหม่ด้วย แสดงความคิดเห็นด้านล่างหากคุณยังมีคำถาม

บทความที่เกี่ยวข้อง