แอปพลิเคชั่นบางตัวสร้างไฟล์ 0 ไบต์ว่างในโฟลเดอร์ข้อมูลและไม่สามารถล้างได้ เมื่อเวลาผ่านไป หากคุณเห็นไฟล์ศูนย์ไบต์จำนวนมากในลำดับชั้นของโฟลเดอร์ ต่อไปนี้คือวิธีการบางอย่างในการค้นหาไฟล์ 0 ไบต์ทั้งหมดและลบออก
ค้นหาและ/หรือลบไฟล์เปล่า (0 ไบต์) ใน Windows:
- ใช้ยูทิลิตี้ “Find Empty Files-n-Folders”
- ใช้ Windows Search
- โดยใช้พรอมต์คำสั่ง
- ใช้ PowerShell
- ใช้ VBScript
- ใช้ DelEmpty.exe
ค้นหาและลบไฟล์ 0 ไบต์ซ้ำๆ ในแผนผังโฟลเดอร์
สิ่งสำคัญที่ควรทราบคือการลบไฟล์ขนาด 0 ไบต์โดยพลการอาจเป็นปัญหาในบางครั้ง เนื่องจากบางแอปพลิเคชันอาจต้องการใช้เป็นตัวยึดตำแหน่งหรือด้วยเหตุผลอื่น หากคุณแน่ใจว่าไม่ต้องการไฟล์ขนาด 0 ไบต์ในเส้นทางโฟลเดอร์และต้องการลบออกทั้งหมด ให้ทำตามวิธีใดวิธีหนึ่งด้านล่างนี้
เริ่มจากเครื่องมือ GUI ฟรีแวร์ของบุคคลที่ 3 กันก่อน แล้วจึงค่อยพูดถึงวิธีการดั้งเดิมต่อไป
1. การใช้ยูทิลิตี้ “Find Empty Files-n-Folders”
Find Empty Files-n-Folders เป็นเครื่องมือที่ยอดเยี่ยมในการค้นหาและลบไฟล์เปล่า (0-byte) และ โฟลเดอร์ว่าง ซ้ำ ๆ ภายใต้แผนผังโฟลเดอร์
ดาวน์โหลด ค้นหาไฟล์เปล่า-n-โฟลเดอร์ (ตัวติดตั้ง 600KB) จาก Ashisoft.com
เลือกโฟลเดอร์แล้วคลิก Scan Now
เครื่องมือจะแสดงรายการไฟล์และโฟลเดอร์ว่างในแท็บแยกต่างหาก
จากแท็บล้างไฟล์ คลิก ทำเครื่องหมายไฟล์ทั้งหมด แล้วคลิก ลบไฟล์.
ในทำนองเดียวกัน ถึง ลบไฟล์ 0 ไบต์ ในแผนผังโฟลเดอร์ที่เลือก ให้คลิกที่ ไฟล์ว่าง แท็บ
Ashisoft.com มีเครื่องมือที่ยอดเยี่ยมอื่น ๆ ที่คุณลองดูได้!
2. การใช้ Windows Search
Windows Search ให้คุณแสดงรายการไฟล์ 0 ไบต์ทั้งหมดโดยใช้ ขนาด:
ตัวดำเนินการแบบสอบถาม
เปิดโฟลเดอร์ที่คุณต้องการค้นหาหรือลบไฟล์เปล่า
ในกล่องค้นหา พิมพ์ ขนาด: ว่างเปล่า
หรือ ขนาด: 0 KB
การกรองผลลัพธ์ตามนามสกุลไฟล์ (เช่น ไฟล์จาวาสคริปต์ → นามสกุล .js
) ใช้สิ่งต่อไปนี้ ไวยากรณ์การสืบค้นล่วงหน้า (AQS):
ขนาด: ว่างเปล่า AND ต่อ: js
3. การใช้พรอมต์คำสั่ง
ในการแสดงรายการไฟล์ 0 ไบต์ (0 KB) ทั้งหมดเป็นโฟลเดอร์และโฟลเดอร์ย่อยแบบเรียกซ้ำ และส่งออกชื่อไปยังไฟล์ ให้ใช้คำสั่งต่อไปนี้
โปรดทราบว่าคุณจะต้องเรียกใช้คำสั่งจากโฟลเดอร์ที่คุณต้องการค้นหาหรือลบไฟล์เปล่า (0 KB)
สำหรับ /r %F ใน (*) ทำ @if %~zF==0 echo "%F" >>d:\0byte-files.txt
อีกวิธีหนึ่ง คุณสามารถรวมพาธโฟลเดอร์เป้าหมายในไฟล์ สำหรับ
คำสั่งเพื่อที่คุณจะได้ไม่ต้องเปลี่ยนไดเร็กทอรีในหน้าต่างคอนโซล ตัวอย่าง:
สำหรับ /r "d:\websites" %F ใน (*) ทำ @if %~zF==0 echo "%F" >>d:\0byte-files.txt
ด้วยวิธีนี้ คุณจะไม่ต้องสลับไปยังโฟลเดอร์นั้นใน Command Prompt
รายการทั้งหมดของเอาต์พุตไฟล์ 0 ไบต์ถูกเขียนลงในไฟล์ชื่อ 0byte-files.txt
บน ด:\
ขับ.
หากต้องการลบไฟล์ คุณจะต้องใช้ เดล
คำสั่งแทน เสียงก้อง
.
สำหรับ /r %F ใน (*.*) ทำ @if %~zF==0 del "%F"
หรือกล่าวถึงเส้นทางโฟลเดอร์เป้าหมายในคำสั่งเอง:
สำหรับ /r "d:\websites" %F ใน (*.*) ทำ @if %~zF==0 del "%F"
ค้นหาและลบไฟล์ 0 ไบต์ที่มีนามสกุลไฟล์เฉพาะ
ในตัวอย่างข้างต้น คุณยังสามารถกรองตามนามสกุลไฟล์ได้อีกด้วย ตัวอย่างเช่น การลบ 0-byte .txt
ไฟล์ที่คุณจะใช้ *.txt
แทน *.*
หรือ *
สำหรับ /r %F ใน (*.txt) ทำ @if %~zF==0 del "%F"
หรือด้วยการกล่าวถึงเส้นทางของโฟลเดอร์:
สำหรับ /r "d:\websites" %F ใน (*.txt) ทำ @if %~zF==0 del "%F"
ที่จะลบความว่างเปล่าทั้งหมด .txt
ไฟล์จากโฟลเดอร์ปัจจุบันและโฟลเดอร์ย่อย หรือในโครงสร้างโฟลเดอร์ที่ระบุซ้ำๆ
สร้างไฟล์แบทช์
หากคุณต้องการสร้างแบตช์ไฟล์เป็น ค้นหาและรายการ ไฟล์ว่างและส่งออกผลลัพธ์ไปยังไฟล์ข้อความ นี่คือสิ่งหนึ่ง:
@ปิดเสียงสะท้อน set out="d:\0byte-files.txt" สำหรับ /r "%~1" %%A ใน (*.*) ทำถ้า %%~zA == 0 echo "%%~fA" >> %out%
บันทึกเนื้อหาข้างต้นเป็น find-empty-files.bat
.
ถึง ลบ ไฟล์เปล่าแทนที่จะแสดงรายชื่อไฟล์ ให้ใช้แบตช์ไฟล์นี้:
@ปิดเสียงสะท้อน สำหรับ /r "%~1" %%A ใน (*.*) ทำถ้า %%~zA == 0 del "%%~fA"
ถึง เรียกใช้แบตช์ไฟล์ กับโฟลเดอร์แบบเรียกซ้ำ คุณจะใช้ไวยากรณ์ต่อไปนี้:
d:\scripts\find-empty-files.bat d:\websites
คำสั่งข้างต้นทำอะไร?
-
สำหรับ /r %F ใน (*)
วนซ้ำไฟล์ซ้ำ ๆ ในโฟลเดอร์และโฟลเดอร์ย่อยที่กล่าวถึง -
ถ้า %~zF==0
ตรวจสอบว่าไฟล์ที่วนซ้ำเป็นไฟล์ 0 ไบต์หรือไม่ -
เดล %%~fA
ลบไฟล์ 0 ไบต์
4. การใช้ PowerShell
เริ่ม PowerShell.exe และใช้หนึ่งในวิธีต่อไปนี้:
รายการว่าง (0 KB) ไฟล์
ถึง รับรายการ ของไฟล์ขนาด 0 ไบต์ภายใต้โครงสร้างโฟลเดอร์ ให้ใช้ไวยากรณ์บรรทัดคำสั่งนี้:
รับ ChildItem -Path "D:\websites\test" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -และ $_.Length -eq 0 } | เลือก -ExpandProperty FullName
ในการส่งออกรายการไปยังไฟล์:
Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -และ $_.Length -eq 0 } | เลือก -ExpandProperty FullName | ชุดเนื้อหา -Path d:\found.txt
ในการส่งออกรายการไปยังมุมมองกริด:
Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -และ $_.Length -eq 0 } | out-gridview
เพื่อแสดงรายการเท่านั้น เฉพาะประเภทไฟล์ (เช่น., .bmp
) :
รับ ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -และ $_.Length -eq 0 } | out-gridview
ลบไฟล์เปล่า (0 KB)
ถึง ลบ ไฟล์ 0 ไบต์ทั้งหมดภายใต้โครงสร้างโฟลเดอร์ ใช้ไวยากรณ์บรรทัดคำสั่งนี้:
Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -และ $_.Length -eq 0 } | ลบรายการ
ในการลบไฟล์ 0 ไบต์ที่มี a นามสกุลเฉพาะ (เช่น., .bmp
)
รับ ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -และ $_.Length -eq 0 } | ลบรายการ
5. การใช้ VBScript
VBScript ต่อไปนี้ล้างไฟล์เปล่า (0 ไบต์) ในโครงสร้างโฟลเดอร์ซ้ำๆ
คัดลอกโค้ดต่อไปนี้ไปยัง Notepad และบันทึกเป็น del-zero-byte-files.vbs
ตัวเลือกชัดเจนถ้า (WScript. ข้อโต้แย้ง นับ <> 1) จากนั้น WScript Echo("การใช้งาน: cscript DeleteEmptyFolders.vbs {path}") WScript เลิก (1) สิ้นสุดถ้า Dim strPath: strPath = WScript อาร์กิวเมนต์ (0) Dim fso: ตั้งค่า fso = CreateObject("Scripting. FileSystemObject") Dim objFolder: ตั้งค่า objFolder = fso GetFolder (strPath) หรี่ sDelList, sDelErr, sFilePath ติ่มซำ iCnt. iCnt = 0 DeleteZeroByteFiles objFolder Sub DeleteZeroByteFiles (โฟลเดอร์) โฟลเดอร์ย่อย Dim, ไฟล์ On Error Resume Next 'ข้ามข้อผิดพลาดเมื่อเข้าถึง Junctions ฯลฯ สำหรับแต่ละโฟลเดอร์ย่อยในโฟลเดอร์ โฟลเดอร์ย่อย DeleteZeroByteFiles โฟลเดอร์ย่อย ถัดไป บน ข้อผิดพลาด ไปที่ 0 สำหรับแต่ละไฟล์ ใน folder.files หาก file.size = 0 แล้ว sFilePath = ไฟล์ Path On Error Resume ต่อไป fso ไฟล์ DeleteFile, True ถ้า Err.number <> 0 แล้ว sDelErr = sDelErr & Err.number & ":" & Err.description & _ vbCrLf & sFilePath & vbCrLf & vbCrLf Else sDelList = sDelList & vbCrLf & sFilePath iCnt = iCnt + 1 End หากเกิดข้อผิดพลาด ไปที่ 0 End If ถัดไป. End Sub ถ้า sDelList = "" และ sDelErr = "" แล้ว WScript Echo "ไม่พบไฟล์ว่างภายใต้ WScript " & _ & strPath & & " ล้มเลิก. End If If sDelList <> "" แล้ว sDelList = "รายการไฟล์ว่างที่ถูกลบ" & vbCrLf _ & String (38,"-") & vbCrLf & sDelList & vbCrLf & _ vbCrLf & "ทั้งหมด: " & iCnt & " ไฟล์ถูกลบแล้ว" หาก sDelErr <> "" ดังนั้น sDelErr = "ไฟล์เหล่านี้ไม่สามารถลบได้" & _ vbCrLf & String (45,"-") & vbCrLf & sDelErr สคริปต์ Echo sDelList & vbCrLf & vbCrLf & sDelErr
การใช้งาน
ในการเรียกใช้สคริปต์กับโฟลเดอร์ คุณสามารถใช้ wscript.exe หรือ cscript.exe ดังด้านล่าง:
cscript d:\scripts\del-zero-byte-files.vbs "d:\travel เอกสาร" wscript d:\scripts\del-zero-byte-files.vbs "d:\travel เอกสาร"
CScript.exe แสดงผลไปยังหน้าต่างคอนโซล ซึ่งหมายความว่าคุณจะต้องเรียกใช้จากหน้าต่างพรอมต์คำสั่งเพื่อดูผลลัพธ์
WScript.exe แสดงผลใน GUI
ผ่านเมนูส่งไปที่
คุณสามารถสร้างทางลัดไปยังสคริปต์ในของคุณ โฟลเดอร์ SendTo และตั้งชื่อว่า ลบไฟล์ 0 ไบต์. คำนำหน้า wscript.exe
ในฟิลด์เป้าหมายคุณสมบัติทางลัด
จากนั้น คลิกขวาบนโฟลเดอร์ที่คุณต้องการลบไฟล์ว่างในโครงสร้างโฟลเดอร์ซ้ำๆ → click ส่งถึง → คลิก ลบไฟล์ 0 ไบต์ ในเมนูส่งไปที่
คุณจะเห็นรายการไฟล์ว่างที่ถูกลบและยอดรวม และไฟล์ที่ไม่สามารถลบได้โดยมีรหัสข้อผิดพลาดปรากฏขึ้น
6. การใช้ DelEmpty.exe
DelEmpty.exe เป็นเครื่องมือคอนโซลจาก IntelliAdmin ที่สามารถลบไดเร็กทอรีว่างแบบเรียกซ้ำได้ โปรแกรมนี้ยังสามารถลบช่องว่างได้อย่างรวดเร็ว ไฟล์ 0 ไบต์ ซ้ำๆ
ต่อไปนี้เป็นไวยากรณ์บรรทัดคำสั่งสำหรับโปรแกรม:
ตัวเลือก DelEmpty.exe [เส้นทาง]
การโต้เถียง | คำอธิบาย |
-f | ลบไฟล์เปล่า (0 ไบต์) |
-d | ลบไดเร็กทอรีว่าง |
-v | โหมดละเอียด |
-ค | โหมดยืนยัน (แสดงสิ่งที่ถูกลบ) |
-s | รวมไดเรกทอรีย่อย (สำรวจโฟลเดอร์ย่อย) |
-l | รายการสิ่งที่จะถูกลบ (จะไม่ลบ) |
-y | ลบโดยไม่มี (y/n) พรอมต์ |
ตัวอย่างที่ 1: ถึง รายการ ไฟล์ว่างภายใต้ไดเร็กทอรีและไดเร็กทอรีย่อย ฉันใช้ไวยากรณ์บรรทัดคำสั่งต่อไปนี้:
DelEmpty.exe "โฟลเดอร์ใหม่" -f -c -s -y -l
คำสั่งด้านบนแสดงรายการโฟลเดอร์ว่าง แต่จะไม่ลบทิ้งตั้งแต่ -l
(รายการเท่านั้น) ใช้สวิตช์
สำหรับชื่อโฟลเดอร์ที่มีช่องว่าง — เช่น Mozilla Firefox
อย่าลืมใส่เครื่องหมายคำพูดคู่รอบๆ เส้นทาง
ตัวอย่างที่ 2: ถึง ลบ ไฟล์ว่างในโฟลเดอร์และโฟลเดอร์ย่อย ฉันรันบรรทัดคำสั่งเดียวกัน แต่ไม่มี -l
สลับกัน:
DelEmpty.exe "โฟลเดอร์ใหม่" -f -c -s -y
คุณรู้จักยูทิลิตี้อื่น ๆ ที่สามารถสำรวจโฟลเดอร์ย่อยและลบไฟล์เปล่าได้หรือไม่? มารู้จักความคิดเห็นของคุณกันเถอะ
คำขอเล็กน้อย: หากคุณชอบโพสต์นี้ โปรดแชร์สิ่งนี้
หนึ่งส่วนแบ่ง "เล็กน้อย" จากคุณจะช่วยอย่างมากในการเติบโตของบล็อกนี้ คำแนะนำที่ดีบางประการ:- ขามัน!
- แชร์ไปยังบล็อกที่คุณชื่นชอบ + Facebook, Reddit
- ทวีตมัน!