Hur tar man bort tomma filer (0 byte) i Windows?

click fraud protection

Vissa applikationer skapar tomma 0-byte filer i sina datamappar och misslyckas med att rensa dem. Med tiden, om du ser många noll-byte-filer i en mapphierarki, här är några metoder för att hitta alla dessa 0-byte-filer och ta bort dem.

Hitta och/eller ta bort tomma (0 byte) filer i Windows:

  1. med hjälp av verktyget "Hitta tomma filer-n-mappar".
  2. med Windows Search
  3. med kommandotolken
  4. med PowerShell
  5. använder VBScript
  6. använder DelEmpty.exe

Hitta och radera 0-byte filer rekursivt i ett mappträd

Det är viktigt att notera att det kan vara problematiskt att ta bort 0-byte-filer godtyckligt ibland, eftersom vissa applikationer kan behöva dem som platshållare eller av någon annan anledning. Om du är säker på att du inte behöver några 0-byte-filer i en mappsökväg och vill ta bort dem alla, följ en av metoderna nedan.

Låt oss börja med ett snyggt 3:e parts freeware GUI-verktyg och sedan täcka de inbyggda metoderna.

1. Använda verktyget "Hitta tomma filer-n-mappar".

Find Empty Files-n-Folders är ett utmärkt verktyg som kan hitta och ta bort tomma filer (0-byte) och tomma mappar rekursivt under ett mappträd.

Ladda ner Hitta tomma filer-n-mappar (600KB installationsprogram) från Ashisoft.com.

Välj mappen och klicka på Skanna nu.

ta bort tomma mappar i Windows

Verktyget kommer att lista tomma filer och mappar på separata flikar.

Klicka på fliken Tomma filer Markera alla filer och klicka sedan Radera filer.

ta bort 0-byte tomma filer i Windows

Likaså till radera 0-byte-filerna i det valda mappträdet, klicka på Tomma filer flik.

Ashisoft.com har andra fantastiska verktyg som du kan kolla in!


2. Använder Windows Search

Windows Search låter dig lista alla 0-byte-filer med hjälp av storlek: frågeoperatör.

Öppna mappen där du vill hitta eller radera tomma filer.

Skriv i sökrutan storlek: tom eller storlek: 0 KB

hitta och ta bort 0-byte filer i Windows

För att filtrera resultaten efter ett filtillägg (t.ex. javascript-filer → tillägg .js ), Använd följande Avancerad frågesyntax (AQS):

storlek: tom OCH ext: js
hitta och ta bort 0-byte filer i Windows

3. Använder kommandotolken

För att lista alla 0-byte (0 KB) filer är en mapp och undermappar rekursivt och mata ut namnen till en fil, använd följande kommando.

Observera att du måste köra kommandot från mappen där du vill hitta eller ta bort tomma (0 KB) filer.

för /r %F in (*) gör @if %~zF==0 eko "%F" >>d:\0byte-files.txt

Alternativt kan du inkludera sökvägen till målmappen i för kommandot så att du inte behöver ändra katalogen i konsolfönstret. Exempel:

för /r "d:\websites" %F in (*) gör @if %~zF==0 eko "%F" >>d:\0byte-files.txt

På så sätt behöver du inte byta till just den mappen i kommandotolken

Den fullständiga listan över 0-byte filer som utmatas skrivs till den namngivna filen 0byte-filer.txtD:\ kör.

hitta och ta bort 0-byte filer i Windows

För att radera filerna använder du del kommando istället för eko.

för /r %F i (*.*) gör @if %~zF==0 del "%F"

eller nämn sökvägen för målmappen i själva kommandot:

för /r "d:\websites" %F i (*.*) gör @if %~zF==0 del "%F"

Hitta och ta bort 0-byte-filer med ett specifikt filtillägg

I exemplen ovan kan du till och med filtrera efter filtillägg. Till exempel att ta bort 0-byte .Text filer du skulle använda *.Text istället för *.* eller *

för /r %F i (*.txt) gör @if %~zF==0 del "%F"

eller med att nämna mappsökvägen:

för /r "d:\websites" %F i (*.txt) gör @if %~zF==0 del "%F"

Det skulle ta bort alla tomma .Text filer från den aktuella mappen och undermappar, eller i det angivna mappträdet rekursivt.

Skapa en batchfil

Om du vill skapa en batchfil till hitta och lista tömma filer och mata ut resultaten till en textfil, här är en:

@eko av. set out="d:\0byte-files.txt" för /r "%~1." %%A in (*.*) gör om %%~zA == 0 eko "%%~fA" >> %out%

Spara ovanstående innehåll som find-empty-files.bat.

Till radera tomma filer istället för att mata ut listan med filer, använd denna batchfil:

@eko av. för /r "%~1." %%A i (*.*) gör om %%~zA == 0 del "%%~fA"

Till kör batchfilen mot en mapp rekursivt skulle du använda följande syntax:

d:\scripts\find-empty-files.bat d:\websites

Vad gör kommandot ovan?

  • för /r %F i (*) itererar filer rekursivt i nämnda mapp och undermappar.
  • om %~zF==0 kontrollerar om den itererade filen är en 0-byte fil
  • del %%~fA radera 0-byte-filen
RELATERAD:Hur man hittar och tar bort tomma mappar automatiskt i Windows

4. Använder PowerShell

Starta PowerShell.exe och använd någon av följande metoder:

Lista tomma (0 KB) filer

Till få listan av 0-byte filer under ett mappträd, använd denna kommandoradssyntax:

Get-ChildItem -Path "D:\websites\test" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | Välj -ExpandProperty FullName

För att mata ut listan till en fil:

Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | Välj -ExpandProperty FullName | Set-Content -Path d:\found.txt
hitta och ta bort 0-byte filer i Windows - powershell

För att mata ut listan till rutnätsvy:

Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | out-gridview

För att bara lista en specifik filtyp (t.ex., .bmp) :

Get-ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | out-gridview

Ta bort tomma (0 KB) filer

Till radera alla 0-byte filer under ett mappträd, använd denna kommandoradssyntax:

Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | ta bort sak

För att radera 0-byte filer som har en specifik förlängning (t.ex., .bmp)

Get-ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | ta bort sak

5. Använder VBScript

ta bort 0-byte tomma filer i Windows - vbscriptFöljande VBScript rensar tomma (0-byte) filer i ett mappträd rekursivt.

Kopiera följande kod till Notepad och spara den som del-zero-byte-files.vbs

Alternativ Explicit If (WScript. Argument. Räkna <> 1) Sedan WScript. Echo("Användning: cscript DeleteEmptyFolders.vbs {sökväg}") WScript. Avsluta (1) End If Dim strPath: strPath = WScript. Argument (0) Dim fso: Set fso = CreateObject("Scripting. FileSystemObject") Dim objFolder: Ange objFolder = fso. GetFolder (strPath) Dim sDelList, sDelErr, sFilePath. Dim iCnt. iCnt = 0 DeleteZeroByteFiles objFolder Sub DeleteZeroByteFiles (mapp) Dim undermapp, fil Vid fel Återuppta Nästa 'Hoppa över fel vid åtkomst till Junctions, etc. För varje undermapp I mapp. Undermappar DeleteZeroByteFiles undermapp Nästa vid fel Gå till 0 för varje fil i folder.files Om file.size = 0 Då sFilePath = fil. Sökväg vid fel Fortsätt Nästa fso. DeleteFile file, True If Err.number <> 0 Then sDelErr = sDelErr & Err.number & ": " & Err.description & _ vbCrLf & sFilePath & vbCrLf & vbCrLf Else sDelList = sDelList & vbCrLf & sFilePath iCnt = iCnt + 1 End If On Error Goto 0 End If Nästa. End Sub Om sDelList = "" Och sDelErr = "" Sedan WScript. Echo "Inga tomma filer hittades under " & _ & strPath & & "trädet" WScript. Sluta med. End If If sDelList <> "" then sDelList = "Lista över tomma filer raderade" & vbCrLf _ & String (38,"-") & vbCrLf & sDelList & vbCrLf & _ vbCrLf & "Totalt: " & iCnt & " filer raderade." Om sDelErr <> "" då sDelErr = "Dessa filer kunde inte tas bort" & _ vbCrLf & String (45,"-") & vbCrLf & sDelErr WScript. Echo sDelList & vbCrLf & vbCrLf & sDelErr

Användande

För att köra skriptet mot en mapp kan du använda wscript.exe eller cscript.exe, som nedan:

cscript d:\scripts\del-zero-byte-files.vbs "d:\resedokument" wscript d:\scripts\del-zero-byte-files.vbs "d:\resedokument"

CScript.exe visar utdata till konsolfönstret. Det betyder att du måste köra det från ett kommandotolksfönster för att se utdata.

WScript.exe visar utdata i GUI.

via menyn Skicka till

Du kan skapa en genväg till skriptet i din Skicka till mapp och namnge det som Ta bort 0-byte filer. Prefix wscript.exe i målfältet för genvägsegenskaper.

ta bort 0-byte tomma filer i Windows - vbscript

Högerklicka sedan på en mapp där du vill radera tomma filer i mappträdet rekursivt → klicka Skicka till → klicka Ta bort 0-byte filer i menyn Skicka till.

Du kommer att se listan över tomma filer som tagits bort och summan, och filer som inte kunde raderas med respektive felkoder visade.

ta bort 0-byte tomma filer i Windows - vbscript
RELATERAD:Hur man tar bort tomma mappar automatiskt i Windows

6. Använder DelEmpty.exe

DelEmpty.exe är ett konsolverktyg från IntelliAdmin som kan ta bort tomma kataloger rekursivt. Detta program kan också snabbt ta bort det tomma 0-byte filer rekursivt.

Följande är kommandoradssyntaxen för programmet:

DelEmpty.exe ALTERNATIV [PATH]
Argument Beskrivning
-f Ta bort tomma (0-byte) filer
-d Ta bort tomma kataloger
-v Utförligt läge
-c Bekräfta läge (visar vad som raderades)
-s Inkludera underkataloger (gå igenom undermappar)
-l Lista vad som skulle raderas (kommer inte att raderas)
-y Ta bort utan (y/n) prompt

Exempel 1: Till lista de tomma filerna under en katalog och dess underkataloger använde jag följande kommandoradssyntax:

DelEmpty.exe "Ny mapp" -f -c -s -y -l
radera tomma filer rekursivt

Kommandot ovan visar listan över tomma mappar, men kommer inte att radera dem sedan -l (endast lista) omkopplare används.

För mappnamn som innehåller mellanslag — t.ex. Mozilla Firefox, se till att inkludera dubbla citattecken runt banan.

Exempel 2: Till radera de tomma filerna i en mapp och undermappar, körde jag samma kommandorad men utan -l växla:

DelEmpty.exe "Ny mapp" -f -c -s -y
radera tomma filer rekursivt

Känner du till något annat verktyg som kan gå igenom undermappar och radera tomma filer? Låt oss veta dina kommentarer.


En liten begäran: Om du gillade det här inlägget, vänligen dela detta?

En "liten" andel från dig skulle verkligen hjälpa mycket med den här bloggens tillväxt. Några bra förslag:
  • Fäst det!
  • Dela den till din favoritblogg + Facebook, Reddit
  • Tweet det!
Så tack så mycket för ditt stöd, min läsare. Det tar inte mer än 10 sekunder av din tid. Dela-knapparna finns precis nedanför. :)

Ezoicrapportera denna annons