Ορισμένες εφαρμογές δημιουργούν κενά αρχεία 0 byte στους φακέλους δεδομένων τους και αποτυγχάνουν να τα διαγράψουν. Με την πάροδο του χρόνου, αν δείτε πολλά αρχεία μηδενικών byte σε μια ιεραρχία φακέλων, ακολουθούν ορισμένες μέθοδοι για να βρείτε όλα αυτά τα αρχεία 0 byte και να τα διαγράψετε.
Εύρεση και/ή διαγραφή κενών (0 byte) αρχείων στα Windows:
- χρησιμοποιώντας το βοηθητικό πρόγραμμα "Find Empty Files-n-Folders".
- χρησιμοποιώντας την Αναζήτηση των Windows
- χρησιμοποιώντας τη γραμμή εντολών
- χρησιμοποιώντας το PowerShell
- χρησιμοποιώντας VBScript
- χρησιμοποιώντας το DelEmpty.exe
Βρείτε και διαγράψτε αρχεία 0 byte αναδρομικά σε ένα δέντρο φακέλων
Είναι σημαντικό να σημειωθεί ότι η αυθαίρετη διαγραφή αρχείων 0 byte μπορεί να είναι προβληματική μερικές φορές, καθώς ορισμένες εφαρμογές μπορεί να τα χρειάζονται ως σύμβολο κράτησης θέσης ή για κάποιο άλλο λόγο. Εάν είστε βέβαιοι ότι δεν χρειάζεστε αρχεία 0 byte σε μια διαδρομή φακέλου και θέλετε να τα διαγράψετε όλα, ακολουθήστε μία από τις παρακάτω μεθόδους.
Ας ξεκινήσουμε με ένα τακτοποιημένο δωρεάν λογισμικό GUI τρίτου κατασκευαστή και, στη συνέχεια, θα καλύψουμε τις εγγενείς μεθόδους στη συνέχεια.
1. Χρησιμοποιώντας το βοηθητικό πρόγραμμα "Εύρεση κενών αρχείων-n-φάκελων".
Το Find Empty Files-n-Folders είναι ένα εξαιρετικό εργαλείο που μπορεί να βρει και να διαγράψει κενά αρχεία (0-byte) και κενούς φακέλους αναδρομικά κάτω από ένα δέντρο φακέλων.
Κατεβάστε Βρείτε κενά αρχεία-n-φάκελους (600KB εγκατάστασης) από το Ashisoft.com.
Επιλέξτε το φάκελο και κάντε κλικ στο Scan Now.
Το εργαλείο θα παραθέσει κενά αρχεία και φακέλους σε ξεχωριστές καρτέλες.
Από την καρτέλα Κενά αρχεία, κάντε κλικ Επισήμανση όλων των αρχείων και μετά κάντε κλικ Διαγραφή αρχείων.
Ομοίως, να διαγράψτε τα αρχεία των 0 byte στο επιλεγμένο δέντρο φακέλων, κάντε κλικ στο Κενά Αρχεία αυτί.
Το Ashisoft.com έχει άλλα εκπληκτικά εργαλεία που μπορείτε να ελέγξετε!
2. Χρήση της Αναζήτησης των Windows
Η Αναζήτηση των Windows σάς επιτρέπει να παραθέσετε όλα τα αρχεία των 0 byte χρησιμοποιώντας το Μέγεθος:
τελεστής ερωτήματος.
Ανοίξτε το φάκελο στον οποίο θέλετε να βρείτε ή να διαγράψετε κενά αρχεία.
Στο πλαίσιο αναζήτησης, πληκτρολογήστε μέγεθος: κενό
ή μέγεθος: 0 KB
Για να φιλτράρετε τα αποτελέσματα κατά επέκταση αρχείου (π.χ. αρχεία javascript → επέκταση .js
), χρησιμοποιήστε τα παρακάτω Σύνταξη ερωτήματος εκ των προτέρων (AQS):
μέγεθος: κενό ΚΑΙ ext: js
3. Χρήση της γραμμής εντολών
Για να παραθέσετε όλα τα αρχεία των 0 byte (0 KB) είναι ένας φάκελος και οι υποφάκελοι αναδρομικά και να εξάγετε τα ονόματα σε ένα αρχείο, χρησιμοποιήστε την ακόλουθη εντολή.
Σημειώστε ότι θα χρειαστεί να εκτελέσετε την εντολή από το φάκελο όπου θέλετε να βρείτε ή να διαγράψετε κενά (0 KB) αρχεία.
για /r %F στο (*) κάντε @if %~zF==0 echo "%F" >>d:\0byte-files.txt
Εναλλακτικά, μπορείτε να συμπεριλάβετε τη διαδρομή φακέλου προορισμού στο Για
εντολή ώστε να μην χρειάζεται να αλλάξετε τον κατάλογο στο παράθυρο της κονσόλας. Παράδειγμα:
για /r "d:\websites" %F σε (*) do @if %~zF==0 echo "%F" >>d:\0byte-files.txt
Με αυτόν τον τρόπο, δεν χρειάζεται να μεταβείτε σε αυτόν τον συγκεκριμένο φάκελο στη γραμμή εντολών
Η πλήρης λίστα των εξόδων αρχείων 0 byte εγγράφεται στο αρχείο με το όνομα 0byte-files.txt
στο ΡΕ:\
οδηγώ.
Για να διαγράψετε τα αρχεία, θα χρησιμοποιήσετε το del
εντολή αντί για ηχώ
.
για /r %F σε (*.*) κάντε @if %~zF==0 στο "%F"
ή αναφέρετε τη διαδρομή του φακέλου προορισμού στην ίδια την εντολή:
για /r "d:\websites" %F σε (*.*) κάντε @if %~zF==0 στο "%F"
Βρείτε και διαγράψτε αρχεία 0 byte με συγκεκριμένη επέκταση αρχείου
Στα παραπάνω παραδείγματα, μπορείτε ακόμη και να φιλτράρετε κατά επέκταση αρχείου. Για παράδειγμα, για να διαγράψετε 0-byte .κείμενο
αρχεία, θα χρησιμοποιούσατε *.κείμενο
αντί *.*
ή *
για /r %F σε (*.txt) κάντε @if %~zF==0 στο "%F"
ή αναφέροντας τη διαδρομή του φακέλου:
για /r "d:\websites" %F σε (*.txt) κάντε @if %~zF==0 στο "%F"
Αυτό θα διαγράψει όλα τα κενά .κείμενο
αρχεία από τον τρέχοντα φάκελο και υποφακέλους ή στο καθορισμένο δέντρο φακέλων αναδρομικά.
Δημιουργήστε ένα αρχείο δέσμης
Εάν θέλετε να δημιουργήσετε ένα ομαδικό αρχείο σε βρείτε και απαριθμήστε αδειάστε αρχεία και εξάγετε τα αποτελέσματα σε ένα αρχείο κειμένου, εδώ είναι ένα:
@echo off. set out="d:\0byte-files.txt" για /r "%~1." %%A σε (*.*) κάντε αν %%~zA == 0 ηχώ "%%~fA" >> %out%
Αποθηκεύστε τα παραπάνω περιεχόμενα ως find-empty-files.bat
.
Προς το διαγράφω άδεια αρχεία αντί να εξάγετε τη λίστα των αρχείων, χρησιμοποιήστε αυτό το αρχείο δέσμης:
@echo off. για /r "%~1." %%A σε (*.*) κάντε εάν %%~zA == 0 del "%%~fA"
Προς το εκτελέστε το αρχείο δέσμης σε έναν φάκελο αναδρομικά, θα χρησιμοποιούσατε την ακόλουθη σύνταξη:
d:\scripts\find-empty-files.bat d:\ιστοσελίδες
Τι κάνει η παραπάνω εντολή;
-
για /r %F σε (*)
επαναλαμβάνει αρχεία αναδρομικά στον αναφερόμενο φάκελο και υποφακέλους. -
εάν %~zF==0
ελέγχει εάν το επαναλαμβανόμενο αρχείο είναι αρχείο 0 byte -
del %%~fA
διαγράψτε το αρχείο 0 byte
4. Χρησιμοποιώντας το PowerShell
Εκκινήστε το PowerShell.exe και χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:
Λίστα κενών (0 KB) αρχείων
Προς το λάβετε τη λίστα αρχείων 0-byte κάτω από ένα δέντρο φακέλων, χρησιμοποιήστε αυτήν τη σύνταξη της γραμμής εντολών:
Get-ChildItem -Διαδρομή "D:\websites\test" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | Επιλέξτε -ExpandProperty FullName
Για να εξάγετε τη λίστα σε ένα αρχείο:
Get-ChildItem -Διαδρομή "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | Επιλέξτε -ExpandProperty FullName | Set-Content -Διαδρομή d:\found.txt
Για έξοδο της λίστας σε προβολή πλέγματος:
Get-ChildItem -Διαδρομή "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | έξω από το πλέγμα
Για να παραθέσω μόνο α συγκεκριμένο τύπο αρχείου (π.χ., .bmp
) :
Get-ChildItem -Διαδρομή "D:\websites" -περιλαμβάνει *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | έξω από το πλέγμα
Διαγραφή κενών (0 KB) αρχείων
Προς το διαγράφω όλα τα αρχεία 0-byte κάτω από ένα δέντρο φακέλων, χρησιμοποιήστε αυτήν τη σύνταξη της γραμμής εντολών:
Get-ChildItem -Διαδρομή "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | αφαίρεση-αντικείμενο
Για να διαγράψετε αρχεία 0 byte που έχουν α συγκεκριμένη επέκταση (π.χ., .bmp
)
Get-ChildItem -Διαδρομή "D:\websites" -περιλαμβάνει *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0 } | αφαίρεση-αντικείμενο
5. Χρησιμοποιώντας VBScript
Η ακόλουθη VBScript διαγράφει τα κενά (0 byte) αρχεία σε ένα δέντρο φακέλων αναδρομικά.
Αντιγράψτε τον παρακάτω κώδικα στο Σημειωματάριο και αποθηκεύστε τον ως del-zero-byte-files.vbs
Option Explicit If (WScript. Επιχειρήματα. Μετρήστε <> 1) Στη συνέχεια, WScript. Echo("Χρήση: cscript DeleteEmptyFolders.vbs {path}") WScript. Έξοδος (1) End If Dim strPath: strPath = WScript. Επιχειρήματα (0) Dim fso: Ορισμός fso = CreateObject("Scripting. FileSystemObject") Dim objFolder: Ορισμός objFolder = fso. GetFolder (strPath) Dim sDelList, sDelErr, sFilePath. Dim iCnt. iCnt = 0 DeleteZeroByteFiles objFolder Sub DeleteZeroByteFiles (φάκελος) Εξαφανισμός υποφάκελου, αρχείο On Error Resume Next 'Παράλειψη σφαλμάτων κατά την πρόσβαση σε Junctions, κ.λπ. Για κάθε υποφάκελο Σε φάκελο. Υποφάκελοι DeleteZeroByteFiles Υποφάκελος Επόμενο σε Σφάλμα Μετάβαση 0 Για κάθε αρχείο Στο folder.files Εάν file.size = 0 Στη συνέχεια, sFilePath = αρχείο. Path On Error Συνέχιση Επόμενο fso. DeleteFile file, True If Err.number <> 0 then sDelErr = sDelErr & Err.number & ": " & Err.description & _ vbCrLf & sFilePath & vbCrLf & vbCrLf Άλλο sDelList = sDelList & vbCrLf & sFilePath iCnt = iCnt + 1 Τέλος Εάν είναι ενεργοποιημένο Σφάλμα Μετάβαση 0 Τέλος Εάν Επόμενο. End Sub If sDelList = "" Και sDelErr = "" Τότε WScript. Echo "Δεν βρέθηκαν κενά αρχεία κάτω από το " & _ & strPath & & " tree" WScript. Εγκαταλείπω. End If If sDelList <> "" τότε sDelList = "Διαγράφηκε λίστα κενών αρχείων" & vbCrLf _ & String (38,"-") & vbCrLf & sDelList & vbCrLf & _ vbCrLf & "Σύνολο: Τα αρχεία " & iCnt & " διαγράφηκαν." Εάν sDelErr <> "" τότε sDelErr = "Δεν ήταν δυνατή η διαγραφή αυτών των αρχείων" & _ vbCrLf & String (45,"-") & vbCrLf & sDelErr WScript. 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 byte. Πρόθεμα wscript.exe
στο πεδίο στόχου ιδιοτήτων συντόμευσης.
Στη συνέχεια, κάντε δεξί κλικ σε έναν φάκελο όπου θέλετε να διαγράψετε κενά αρχεία στο δέντρο φακέλων αναδρομικά → κάντε κλικ Στέλνω σε → κλικ Διαγραφή αρχείων 0 byte στο μενού Αποστολή σε.
Θα δείτε τη λίστα των κενών αρχείων που διαγράφηκαν και το σύνολο, καθώς και τα αρχεία που δεν μπορούσαν να διαγραφούν με τους αντίστοιχους κωδικούς σφάλματος που εμφανίζονται.
6. Χρησιμοποιώντας το DelEmpty.exe
DelEmpty.exe είναι ένα εργαλείο κονσόλας από το IntelliAdmin που μπορεί να διαγράψει άδειους καταλόγους αναδρομικά. Αυτό το πρόγραμμα μπορεί επίσης να διαγράψει γρήγορα το κενό Αρχεία 0 byte αναδρομικά.
Ακολουθεί η σύνταξη της γραμμής εντολών για το πρόγραμμα:
Επιλογές DelEmpty.exe [ΔΙΑΔΡΟΜΗ]
Διαφωνία | Περιγραφή |
-φά | Διαγραφή κενών αρχείων (0 byte). |
-ρε | Διαγραφή κενών καταλόγων |
-v | Λεπτή λειτουργία |
-ντο | Λειτουργία επιβεβαίωσης (Εμφανίζει τι διαγράφηκε) |
-μικρό | Συμπερίληψη υποκαταλόγων (υποφάκελοι διέλευσης) |
-μεγάλο | Καταγράψτε τι θα διαγραφεί (δεν θα διαγραφεί) |
-υ | Διαγραφή χωρίς προτροπή (y/n). |
Παράδειγμα 1: Προς το λίστα τα άδεια αρχεία κάτω από έναν κατάλογο και τους υποκαταλόγους του, χρησιμοποίησα την ακόλουθη σύνταξη της γραμμής εντολών:
DelEmpty.exe "Νέος φάκελος" -f -c -s -y -l
Η παραπάνω εντολή εμφανίζει τη λίστα των κενών φακέλων, αλλά δεν θα τους διαγράψει αφού το -μεγάλο
(λίστα μόνο) χρησιμοποιείται διακόπτης.
Για ονόματα φακέλων που περιέχουν κενό (α) — π.χ. Mozilla Firefox
, φροντίστε να συμπεριλάβετε τα διπλά εισαγωγικά γύρω από τη διαδρομή.
Παράδειγμα 2: Προς το διαγράφω τα κενά αρχεία σε έναν φάκελο και τους υποφακέλους, έτρεξα την ίδια γραμμή εντολών αλλά χωρίς το -μεγάλο
διακόπτης:
DelEmpty.exe "Νέος φάκελος" -f -c -s -y
Γνωρίζετε κάποιο άλλο βοηθητικό πρόγραμμα που μπορεί να διασχίσει υποφακέλους και να διαγράψει κενά αρχεία; Ενημερώστε τα σχόλιά σας.
Ένα μικρό αίτημα: Αν σας άρεσε αυτή η ανάρτηση, κοινοποιήστε την;
Μια "μικροσκοπική" κοινοποίηση από εσάς θα βοηθούσε πολύ σοβαρά στην ανάπτυξη αυτού του ιστολογίου. Μερικές υπέροχες προτάσεις:- Καρφιτσώστε το!
- Μοιραστείτε το στο αγαπημένο σας ιστολόγιο + Facebook, Reddit
- Tweet το!