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

