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

PowerShell เป็น NullOrEmpty และพื้นที่สีขาว


ใน PowerShell IsNullOrEmpty วิธีการคงที่ในตัวของคลาส .Net Framework System.String สามารถใช้เพื่อกำหนดว่าตัวแปรสตริงเป็น null หรือว่างเปล่า

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

วิธีการคงที่ในตัว IsNullOrWhiteSpace ของคลาส System.String .Net Framework สามารถนำมาใช้ได้อย่างมีประสิทธิภาพเพื่อตรวจสอบว่าตัวแปรสตริงประกอบด้วยอักขระ null หรือช่องว่างเท่านั้น

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

ตรวจสอบว่าสตริงเป็นโมฆะหรือว่างเปล่า

ใช้เมธอด IsNullOrEmpty เพื่อตรวจสอบว่าตัวแปรสตริงเป็น null หรือว่างเปล่า ให้ทำตามไวยากรณ์นี้:

$tempVariable
if([string]::IsNullOrEmpty($tempVariable)) 
{ 
    Write-Host "The string is null or empty."
} 
else 
{   Write-Host "The strign is not null or empty."
} 

ในสคริปต์ PowerShell ข้างต้น เราได้กำหนดตัวแปร $tempVariable ในการตรวจสอบว่าตัวแปรเป็นโมฆะหรือว่างเปล่า คำสั่ง if ใช้วิธีการคงที่ IsNullOrEmpty เพื่อนำตัวแปรเป็นอินพุตและประเมินว่าตัวแปรสตริงเป็นโมฆะหรือว่างเปล่า

ผลลัพธ์ของสคริปต์ PowerShell ข้างต้นจะกำหนดตัวแปรที่มีค่าใดๆ หรือเป็นค่าว่าง และพิมพ์ผลลัพธ์โดยใช้ cmdlet Write-Host

PS C:\> $tempVariable                                                                                                   

PS C:\> if([string]::IsNullOrEmpty($tempVariable)) 
{ 
    Write-Host "The string is null or empty"
} 
else 
{  Write-Host "asd"
}  

The string is null or empty

PS C:\>

มาดูตัวอย่างที่เป็นประโยชน์เพิ่มเติมของ IsNullOrEmpty ใน PowerShell

ตัวแปร PowerShell ตรวจสอบค่า Null หรือว่างเปล่าสำหรับการป้อนข้อมูลของผู้ใช้

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

do 
{ 
   $username = Read-Host "Please enter a user name" 
} while ([string]::IsNullOrEmpty($username))  

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

ผลลัพธ์ของสคริปต์ PowerShell ด้านบนเพื่อตรวจสอบว่าตัวแปรเป็นโมฆะหรือว่างเปล่าคือ:

PowerShell ถ้าตัวแปรเป็น Null หรือว่างเปล่าในฟังก์ชัน

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

function Validate-String {
    param (
        [string]$inputString
    )
    
    if ([string]::IsNullOrEmpty($inputString)) {
        Write-Error "The input string parameter cannot be null or empty"
        return
    }
    
    # Continue processing the input string parameter
}

ในสคริปต์ PowerShell ข้างต้น เราได้สร้างฟังก์ชัน Validate-String ฟังก์ชันนี้รับพารามิเตอร์อินพุต $inputString ในฟังก์ชัน จะตรวจสอบว่าตัวแปรว่างเปล่าหรือเป็นโมฆะหรือไม่โดยใช้คลาส IsNullOrEmpty วิธีการคงที่ System.String

ผลลัพธ์ของสคริปต์ PowerShell ข้างต้นจะตรวจสอบว่าตัวแปรนั้นเป็นโมฆะหรือว่างเปล่าในฟังก์ชัน


PS C:\> Validate-String -inputString ""
Validate-String : The input string parameter cannot be null or empty
At line:1 char:1
+ Validate-String -inputString ""
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Validate-String

ตรวจสอบว่าสตริงเป็นอักขระ Null หรือ WhiteSpace

หากต้องการตรวจสอบว่าสตริงมีเพียงอักขระ Null หรือช่องว่างหรือไม่ ให้ใช้วิธี IsNullOrWhiteSpace และทำตามไวยากรณ์:

$userInput = "shelladmin"
if ([string]::IsNullOrWhiteSpace($userInput )) {
    Write-Host "The string is null or contains only whitespace characters"
}
else {
 Write-Host "The string does not contains null or whitespace characters"
}

ในสคริปต์ PowerShell ข้างต้น คำสั่ง if ใช้เมธอด IsNullOrWhiteSpace เพื่อระบุว่าตัวแปรสตริงประกอบด้วยอักขระว่างหรือเฉพาะช่องว่าง แล้วพิมพ์เอาต์พุต

สคริปต์ PowerShell ด้านบนตรวจสอบตัวแปรสตริง และเนื่องจากไม่เป็นค่าว่างหรือมีอักขระช่องว่าง จึงส่งคืนเอาต์พุตเป็น:

The string does not contains null or whitespace characters

ข้อผิดพลาดทั่วไปและแนวปฏิบัติที่ดีที่สุด

มีความแตกต่างระหว่างสตริงว่างและสตริงว่าง ดังนั้นให้ใช้วิธีที่ถูกต้องเพื่อตรวจสอบความถูกต้องของอินพุต ใช้ -eq $null หรือ -ne $null เพื่อตรวจสอบค่า Null ในประเภทข้อมูลที่ไม่ใช่สตริงที่สามารถเป็นค่าว่างได้

ใช้วิธี IsNullOrWhileSpace และ IsNullOrEmpty เพื่อตรวจสอบตัวแปรสตริงตามความต้องการ

บทสรุป

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

ใช้เมธอด IsNullOrWhiteSpace() เพื่อตรวจสอบว่าสตริงมีอักขระ null หรือช่องว่างหรือไม่

คุณสามารถค้นหาหัวข้อเพิ่มเติมเกี่ยวกับคำสั่ง PowerShell Active Directory และพื้นฐานของ PowerShell ได้ในหน้าแรกของ ShellGeek

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