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
