ตรวจสอบว่าสตริงเป็นโมฆะหรือว่างเปล่าใน PowerShell [4 วิธี]
การใช้ตัวดำเนินการ -not และ -eq
ใช้ตัวดำเนินการ -not เพื่อตรวจสอบว่าสตริงเป็น null หรือว่างเปล่าใน PowerShell
ใช้ตัวดำเนินการ -not และ -eq:
$string=$null
if (-not $string -or $string -eq '') {
Write-Host "The provided string is null or empty."
}
else{
Write-Host "The provided string is not null or empty."
}เอาท์พุท :
The provided string is null or empty.ขั้นแรก เราได้ประกาศตัวแปร $string และกำหนดค่าเริ่มต้นด้วย $null $null คืออะไร? เป็นตัวแปรอัตโนมัติใน PowerShell ที่แสดงค่า NULL ตอนนี้ NULL คืออะไร เราสามารถมองมันเป็นค่าว่างหรือค่าที่ไม่รู้จักได้ ตัวแปรใดๆ ก็ตามจะเป็น Null จนกว่าเราจะกำหนดวัตถุหรือค่าใดๆ ให้กับตัวแปรนั้น
ต่อไป เราใช้คำสั่ง if พร้อมด้วยตัวดำเนินการ -not และ -eq เพื่อตรวจสอบว่า $string เป็น < รหัส>null หรือว่างเปล่า ในที่นี้ -not เป็นตัวดำเนินการ not เชิงตรรกะที่ใช้ในการปฏิเสธผลลัพธ์ของนิพจน์ที่ตามมา ดังนั้นในข้อมูลโค้ดด้านบน -not ปฏิเสธผลลัพธ์ของ $string; เนื่องจาก $string คือ null ซึ่งเป็นค่า False ใน PowerShell -not จะเปลี่ยนเป็น <รหัส>จริง
ตัวดำเนินการ -eq ซึ่งแสดงถึงค่าเท่ากับ ใช้เพื่อเปรียบเทียบค่าทั้งสองเพื่อพิจารณาว่ามีค่าเท่ากันหรือไม่ ต่อไป เราเปรียบเทียบ $string กับสตริงว่างที่แสดงด้วย '' หากตรงตามเงื่อนไข คำสั่ง if จะถูกดำเนินการ มิฉะนั้น บล็อก else จะเป็นเช่นนี้
ในที่นี้ เราใช้ตรรกะหรือแสดงด้วย -หรือ ซึ่งจะช่วยดำเนินการบล็อก if หาก $string -eq '' หรือ -ไม่ใช่ $string เป็นที่พอใจ สุดท้าย เราใช้ Write-Host เพื่อแสดงข้อความที่กำหนดเองบนโฮสต์ ซึ่งก็คือคอนโซล PowerShell ของเรา ในทำนองเดียวกัน เราสามารถใช้ตัวดำเนินการ -eq ได้ดังนี้
ใช้ตัวดำเนินการ -eq เพื่อตรวจสอบว่าสตริงเป็น null หรือว่างเปล่าใน PowerShell
ใช้ตัวดำเนินการ -eq:
$string=$null
if ($string -eq '' -or $string -eq $null) {
Write-Host "The provided string is null or empty."
}
else{
Write-Host "The provided string is not null or empty."
}เอาท์พุท :
The provided string is null or empty.โค้ดนี้คล้ายกับตัวอย่างก่อนหน้านี้ แต่เราใช้ตัวดำเนินการ -eq เพื่อเปรียบเทียบค่าทั้งสองเพื่อพิจารณาว่ามีค่าเท่ากันหรือไม่ เราเปรียบเทียบ $string กับสตริงว่างที่แสดงด้วย '' และ $null หากตรงตามเงื่อนไข คำสั่ง if จะถูกดำเนินการ มิฉะนั้น บล็อก else จะเป็นเช่นนี้
ใช้วิธี IsNullOrEmpty()
ใช้เมธอด IsNullOrEmpty() เพื่อตรวจสอบว่าสตริงเป็น null หรือว่างเปล่าใน PowerShell
ใช้วิธี IsNullOrEmpty():
$string=''
if ([string]::IsNullOrEmpty($string)) {
Write-Host "The provided string is null or empty."
}
else{
Write-Host "The provided string is not null or empty."
}เอาท์พุท :
The provided string is null or empty.
สำหรับข้อมูลโค้ดข้างต้น เราใช้เมธอด IsNullOrEmpty() ของคลาส string เพื่อตรวจสอบว่า $string ว่างเปล่าหรือ null วิธีการนี้ใช้พารามิเตอร์หนึ่งตัวที่เป็นประเภท string และส่งคืนค่าบูลีนตาม $string ที่กำหนด ผลลัพธ์จะเป็น True หาก $string เป็น null หรือสตริงว่าง ซึ่งจะส่งผลให้เกิดการดำเนินการ if ปิดกั้น; มิฉะนั้นจะเป็น False และบล็อก else จะถูกดำเนินการ
คุณสามารถใช้วิธีแก้ปัญหาต่อไปนี้ได้หากต้องการรวมช่องว่างขณะทดสอบตัวแปรด้วย
ใช้เมธอด IsNullOrEmpty() และ IsNullOrWhitespace() เพื่อตรวจสอบว่าสตริงเป็น null หรือว่างเปล่าใน PowerShell
ใช้ ISNullOrEmpty() และ IsNullOrWhitespace() วิธีการ:
$string=' '
if ([string]::IsNullOrEmpty($string) -or [string]::IsNullOrWhitespace($string) ) {
Write-Host "The provided string is null or empty."
}
else{
Write-Host "The provided string is not null or empty."
}เอาท์พุท :
The provided string is null or empty.ในกรอบโค้ดด้านบน IsNullOrEmpty() ตรวจสอบว่า $string ว่างเปล่าหรือ null ในขณะที่ IsNullOrWhitespace() พบว่า $string เป็น null หรือมีช่องว่าง หากวิธีใดวิธีหนึ่งในสองวิธีส่งคืน True บล็อก if จะทำงาน มิฉะนั้น บล็อก else
การใช้ตัวดำเนินการ -notmatch กับ Regex
ใช้ตัวดำเนินการ -notmatch กับนิพจน์ทั่วไปเพื่อตรวจสอบว่าสตริงที่ระบุเป็น null หรือว่างเปล่าใน PowerShell
ใช้ -notmatch Operator กับ Regex:
$string=''
if ($string -notmatch '\S') {
Write-Host "The provided string is null or empty."
}
else{
Write-Host "The provided string is not null or empty."
}เอาท์พุท :
The provided string is null or empty.ที่นี่ เราใช้ตัวดำเนินการ -notmatch กับนิพจน์ทั่วไป \S เพื่อตรวจสอบว่า $string เป็น null หรือไม่ หรือว่างเปล่า ในที่นี้ \S หมายถึงอักขระใดๆ ที่ไม่ใช่ช่องว่าง หาก $string มีอักขระที่ไม่ใช่ช่องว่าง ตัวดำเนินการ -notmatch จะส่งกลับบล็อก False และ else จะถูกดำเนินการ; มิฉะนั้น Write-Host จะทำงานภายในบล็อก if
การใช้การหล่อแบบ
ใช้การหล่อประเภทหรือที่เรียกว่าการหล่อแบบไดนามิกเพื่อตรวจสอบว่าสตริงที่กำหนดเป็น null หรือว่างเปล่าใน PowerShell
ใช้การหล่อประเภท:
$string=$null
[bool]$string
$string=''
[bool]$string
$string='Hello'
[bool]$stringเอาท์พุท :
False
False
Trueที่นี่ เราแปลง $string เป็นประเภท bool ณ รันไทม์เพื่อรับค่าบูลีนเพื่อทราบว่าตัวแปร $string ว่างเปล่าหรือ โมฆะ. โค้ดด้านบนจะแสดง False หาก $string ว่างเปล่าหรือ null; มิฉะนั้น จริง
นั่นคือทั้งหมดที่เกี่ยวกับวิธีการตรวจสอบว่า String เป็นโมฆะหรือว่างเปล่าใน PowerShell
