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

จะตรวจสอบว่าตัวแปรเป็น Null ใน PowerShell ได้อย่างไร


เมื่อเร็วๆ นี้ สมาชิกคนหนึ่งของฉันถามฉันเกี่ยวกับการตรวจสอบว่าตัวแปรใน PowerShell เป็นโมฆะหรือไม่ นี่เป็นข้อกำหนดทั่วไปหากคุณทำงานกับ PowerShell ในบทช่วยสอนนี้ ฉันจะอธิบายวิธีการต่างๆ เพื่อตรวจสอบว่าตัวแปรเป็นค่าว่างใน PowerShell หรือไม่ พร้อมด้วยตัวอย่างและสคริปต์ที่สมบูรณ์

ในการตรวจสอบว่าตัวแปรเป็นค่าว่างใน PowerShell หรือไม่ คุณสามารถใช้ตัวดำเนินการ -eq (เท่ากับ) ตัวอย่างเช่น หากคุณมีตัวแปร $variable คุณสามารถเขียน:

if ($variable -eq $null) {
    Write-Output "The variable is null."
} else {
    Write-Output "The variable is not null."
}

เมธอดนี้จะเปรียบเทียบตัวแปรโดยตรงกับ $null และส่งออกว่าเป็นค่าว่างหรือไม่

Null ใน PowerShell คืออะไร

ใน PowerShell นั้น $null แสดงถึงการไม่มีค่าหรือค่าที่ไม่ได้กำหนด มันคล้ายกับ null ในภาษาการเขียนโปรแกรมอื่นๆ เช่น C# หรือ JavaScript เมื่อกำหนดตัวแปร $null หมายความว่าตัวแปรนั้นไม่มีข้อมูลใดๆ

ตรวจสอบว่าตัวแปรเป็น Null ใน PowerShell หรือไม่

ตอนนี้ให้เราตรวจสอบวิธีการทั้งหมดเพื่อตรวจสอบว่าตัวแปรเป็นโมฆะใน PowerShell หรือไม่

1. การตรวจสอบ Null ขั้นพื้นฐาน

วิธีที่ตรงไปตรงมาที่สุดในการตรวจสอบว่าตัวแปรเป็นค่าว่างใน PowerShell หรือไม่คือการใช้ตัวดำเนินการ -eq (เท่ากับ) นี่คือตัวอย่าง

$variable = $null
if ($variable -eq $null) {
    Write-Output "The variable is null."
} else {
    Write-Output "The variable is not null."
}

ในตัวอย่างนี้ เนื่องจาก $variable ได้รับการกำหนดเป็น $null เงื่อนไข $variable -eq $null จึงประเมินเป็น True > และสคริปต์เอาต์พุต “ตัวแปรเป็นโมฆะ”

ผลลัพธ์อยู่ในภาพหน้าจอด้านล่าง ฉันรันสคริปต์ด้านบนโดยใช้รหัส VS

ตรวจสอบตัวแปรส่วนกลางของ PowerShell

2. การใช้ตัวดำเนินการ -ne

ใน PowerShell คุณยังสามารถใช้ตัวดำเนินการ -ne (ไม่เท่ากัน) เพื่อตรวจสอบว่าตัวแปรไม่เป็นค่าว่างหรือไม่ นี่เป็นอีกวิธีในการตรวจสอบว่าตัวแปรเป็นโมฆะใน PowerShell หรือไม่ นี่คือตัวอย่างด้านล่าง:

$variable = "PowerShell"
if ($variable -ne $null) {
    Write-Output "The variable is not null."
} else {
    Write-Output "The variable is null."
}

ในที่นี้ $variable เป็นสตริง ดังนั้นเงื่อนไข $variable -ne $null ประเมินเป็น True และสคริปต์ส่งออก “ตัวแปรคือ ไม่เป็นโมฆะ”

คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง:

3. รวมการตรวจสอบสตริงว่างและสตริงว่าง

บางครั้ง คุณอาจต้องการตรวจสอบว่าตัวแปรเป็นค่าว่างหรือสตริงว่างใน PowerShell หรือไม่ สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อต้องจัดการกับอินพุตของผู้ใช้หรือเส้นทางไฟล์ คุณสามารถรวมการตรวจสอบเหล่านี้ได้โดยใช้ตัวดำเนินการ -หรือ:

$variable = ""
if ($variable -eq $null -or $variable -eq "") {
    Write-Output "The variable is either null or empty."
} else {
    Write-Output "The variable is not null and not empty."
}

ในกรณีนี้ เนื่องจาก $variable เป็นสตริงว่าง เงื่อนไข $variable -eq $null -or $variable -eq "" จึงประเมินเป็น True และสคริปต์ส่งออก "ตัวแปรเป็นโมฆะหรือว่างเปล่า"

4. ใช้วิธี IsNullOrEmpty

PowerShell มีเมธอด IsNullOrEmpty() วิธีคงที่จากคลาส [string] เพื่อตรวจสอบว่าสตริงเป็นโมฆะหรือว่างเปล่า

$variable = ""
if ([string]::IsNullOrEmpty($variable)) {
    Write-Output "The variable is either null or empty."
} else {
    Write-Output "The variable is not null and not empty."
}

วิธีการนี้มีประโยชน์อย่างยิ่งเมื่อทำงานกับสตริง และทำให้แน่ใจว่าการตรวจสอบของคุณมีประสิทธิภาพและเข้าใจง่าย

5. ตัวดำเนินการ Null-Coalescing (PowerShell 7+)

เริ่มต้นจาก PowerShell 7 คุณสามารถใช้ตัวดำเนินการการรวมค่า Null ?? และ ??= เพื่อจัดการค่า Null ได้อย่างสวยงามยิ่งขึ้น ตัวดำเนินการ ?? จะส่งคืนค่าทางด้านขวาหากด้านซ้ายเป็นค่าว่าง

นี่คือสคริปต์ที่สมบูรณ์

$variable = $null
$default = "Default Value"
$result = $variable ?? $default
Write-Output $result  # Outputs "Default Value"

ตัวดำเนินการ ??= จะกำหนดค่าให้กับตัวแปรเฉพาะในกรณีที่เป็นโมฆะ:

$variable = $null
$variable ??= "Default Value"
Write-Output $variable  # Outputs "Default Value"

ตัวดำเนินการเหล่านี้ให้วิธีที่ทันสมัยมากขึ้นในการจัดการค่า Null ใน PowerShell

ตรวจสอบตัวแปรท้องถิ่นของ PowerShell

ตรวจสอบว่าตัวแปรเป็น Null ใน PowerShell หรือไม่: ตัวอย่างในโลกแห่งความเป็นจริง

ตอนนี้ ฉันจะแสดงตัวอย่างการใช้งานจริงใน PowerShell ให้คุณดูเพื่อตรวจสอบว่าตัวแปรมีค่าว่างหรือไม่

ตัวอย่างที่ 1: การตรวจสอบอินพุตของผู้ใช้

สมมติว่าคุณกำลังเขียนสคริปต์เพื่อรวบรวมข้อมูลของผู้ใช้สำหรับการสำรวจ คุณต้องการให้แน่ใจว่าอินพุตไม่เป็นโมฆะหรือว่างเปล่าก่อนที่จะประมวลผล จากนั้นคุณสามารถเขียนสคริปต์ได้ดังนี้:

$userInput = Read-Host "Enter your feedback"
if ([string]::IsNullOrEmpty($userInput)) {
    Write-Output "Feedback cannot be empty. Please try again."
} else {
    Write-Output "Thank you for your feedback!"
}

นี่คือผลลัพธ์ของสคริปต์ PowerShell ในภาพหน้าจอด้านล่าง:

ตัวอย่างที่ 2: การตรวจสอบความถูกต้องของเส้นทางไฟล์

ในสคริปต์ที่ประมวลผลไฟล์ คุณอาจต้องการตรวจสอบให้แน่ใจว่าเส้นทางไฟล์ที่ผู้ใช้ระบุไม่เป็นค่าว่างหรือว่างเปล่า คุณสามารถมีสคริปต์ PowerShell ได้ดังนี้:

$filePath = Read-Host "Enter the path to the file"
if ([string]::IsNullOrEmpty($filePath)) {
    Write-Output "File path cannot be empty. Please provide a valid path."
} elseif (-Not (Test-Path $filePath)) {
    Write-Output "File does not exist. Please check the path and try again."
} else {
    Write-Output "Processing file: $filePath"
    # Add file processing logic here
}

บทสรุป

มี มีหลายสถานการณ์ใน PowerSนรกที่คุณอาจต้องตรวจสอบว่าตัวแปรเป็นโมฆะ เช่น การตรวจสอบอินพุตของผู้ใช้ การประมวลผลไฟล์ การจัดการการตั้งค่า ฯลฯ ในบทช่วยสอนนี้ ฉันได้อธิบายวิธีการต่างๆ ในการตรวจสอบว่าตัวแปรเป็นค่าว่างใน PowerShell หรือไม่ ฉันแนะนำให้ใช้-ne Operator สำหรับสิ่งนี้เสมอ

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