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

ตรวจสอบว่าสตริงเป็นโมฆะหรือว่างเปล่าใน 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

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