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

PowerShell: ตรวจสอบว่า Get-ChildItem ส่งกลับไม่มีผลลัพธ์หรือไม่


คุณสามารถใช้ Get-ChildItem cmdlet ใน PowerShell เพื่อดึงไฟล์ทั้งหมดในไดเรกทอรีเฉพาะ

ในบางครั้ง คุณอาจต้องการตรวจสอบว่า cmdlet Get-ChildItem ไม่ส่งคืนผลลัพธ์หรือไม่

คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:

$results = @(Get-ChildItem)

if ($results.length -eq 0) {
  Write-Host "No Files" 
} else {
  Write-Host "At Least One File"
}

ไวยากรณ์นี้ทำงานโดยการจัดเก็บผลลัพธ์ของ Get-ChildItem cmdlet ไว้ในอาร์เรย์ชื่อ $results จากนั้นใช้คำสั่ง if else เพื่อตรวจสอบ ถ้าคุณสมบัติ ความยาว ของอาร์เรย์เท่ากับศูนย์หรือไม่

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: ตรวจสอบว่า Get-ChildItem ไม่มีผลลัพธ์ใน PowerShell หรือไม่

สมมติว่าไดเรกทอรีปัจจุบันของเรามีเส้นทางต่อไปนี้:

C:\Users\bobbi\data1

เราสามารถใช้ Get-ChildItem cmdlet เพื่อดูไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันนี้ก่อน:

เราจะเห็นว่าไดเร็กทอรีนี้มีไฟล์ทั้งหมดหกไฟล์

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อตรวจสอบว่า cmdlet Get-ChildItem ไม่ส่งคืนผลลัพธ์หรือไม่:

$results = @(Get-ChildItem)

if ($results.length -eq 0) {
  Write-Host "No Files" 
} else {
  Write-Host "At Least One File"
}

ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:

ซึ่งจะส่งคืนเอาต์พุต “อย่างน้อยหนึ่งไฟล์” เพื่อระบุว่า cmdlet Get-ChildItem ส่งคืนไฟล์อย่างน้อยหนึ่งไฟล์

สมมติว่าไดเรกทอรีปัจจุบันของเรามีเส้นทางต่อไปนี้:

C:\Users\bobbi\data2

เราสามารถใช้ Get-ChildItem cmdlet เพื่อดูไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันนี้ก่อน:

เราจะเห็นว่าไดเรกทอรีนี้ไม่มีไฟล์

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อตรวจสอบว่า cmdlet Get-ChildItem ไม่ส่งคืนผลลัพธ์หรือไม่:

$results = @(Get-ChildItem)

if ($results.length -eq 0) {
  Write-Host "No Files" 
} else {
  Write-Host "At Least One File"
}

ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:

ซึ่งจะส่งคืนเอาต์พุต “No Files” เพื่อระบุว่า Get-ChildItem cmdlet ไม่ส่งคืนไฟล์ใด ๆ

หมายเหตุ: คุณสามารถดูเอกสารฉบับสมบูรณ์สำหรับ Get-ChildItem cmdlet ใน PowerShell ได้ที่นี่

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