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:
- med hjälp av verktyget "Hitta tomma filer-n-mappar".
- med Windows Search
- med kommandotolken
- med PowerShell
- använder VBScript
- 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.
Verktyget kommer att lista tomma filer och mappar på separata flikar.
Klicka på fliken Tomma filer Markera alla filer och klicka sedan Radera filer.
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
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
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.txt
på D:\
kör.
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
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
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
Fö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.
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.
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
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
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!
![Ezoic](/f/e21ab1194daa0428d27d48cfeefe4507.png)