Niektóre aplikacje tworzą puste pliki 0-bajtowe w swoich folderach danych i nie potrafią ich wyczyścić. Z biegiem czasu, jeśli zobaczysz wiele plików zerobajtowych w hierarchii folderów, oto kilka metod znajdowania wszystkich tych plików 0-bajtowych i ich usuwania.
Znajdź i/lub usuń puste (0-bajtowe) pliki w systemie Windows:
- za pomocą narzędzia „Znajdź puste pliki-n-foldery”
- za pomocą wyszukiwania systemu Windows
- za pomocą wiersza polecenia
- za pomocą PowerShell
- przy użyciu VBScript
- za pomocą DelEmpty.exe
Znajdź i usuń rekursywnie pliki 0-bajtowe w drzewie folderów
Należy zauważyć, że arbitralne usuwanie plików 0-bajtowych może być czasami problematyczne, ponieważ niektóre aplikacje mogą potrzebować ich jako symbolu zastępczego lub z jakiegoś innego powodu. Jeśli masz pewność, że nie potrzebujesz żadnych plików 0-bajtowych w ścieżce folderu i chcesz je wszystkie usunąć, wykonaj jedną z poniższych metod.
Zacznijmy od zgrabnego darmowego narzędzia GUI innej firmy, a następnie omówimy metody natywne.
1. Korzystanie z narzędzia „Znajdź puste pliki-n-foldery”
Find Empty Files-n-Folders to doskonałe narzędzie, które może znajdować i usuwać puste pliki (0-bajtowe) i puste foldery rekurencyjnie pod drzewem folderów.
Ściągnij Znajdź puste pliki-n-foldery (instalator 600 KB) z Ashisoft.com.
Wybierz folder i kliknij Skanuj teraz.
Narzędzie wyświetli listę pustych plików i folderów w osobnych zakładkach.
Na karcie Puste pliki kliknij Zaznacz wszystkie pliki a następnie kliknij Usuń pliki.
Podobny do usuń pliki 0-bajtowe w wybranym drzewie folderów kliknij Puste pliki patka.
Ashisoft.com ma inne niesamowite narzędzia, które możesz wypróbować!
2. Korzystanie z wyszukiwania systemu Windows
Wyszukiwarka Windows pozwala wyświetlić listę wszystkich plików 0-bajtowych za pomocą rozmiar:
operator zapytania.
Otwórz folder, w którym chcesz znaleźć lub usunąć puste pliki.
W polu wyszukiwania wpisz rozmiar: pusty
lub rozmiar: 0 KB
Aby filtrować wyniki według rozszerzenia pliku (np. pliki javascript → rozszerzenie .js
), użyj następujących Składnia zapytań zaawansowanych (AQS):
rozmiar: pusty AND ext: js
3. Korzystanie z wiersza polecenia
Aby wyświetlić listę wszystkich plików 0-bajtowych (0 KB) to folder i podfoldery rekurencyjnie i wyprowadzić nazwy do pliku, użyj następującego polecenia.
Pamiętaj, że musisz uruchomić polecenie z folderu, w którym chcesz znaleźć lub usunąć puste (0 KB) pliki.
dla /r %F in (*) do @if %~zF==0 echo "%F" >>d:\0byte-files.txt
Alternatywnie możesz dołączyć ścieżkę folderu docelowego w dla
polecenie, abyś nie musiał zmieniać katalogu w oknie konsoli. Przykład:
dla /r "d:\websites" %F in (*) do @if %~zF==0 echo "%F" >>d:\0byte-files.txt
W ten sposób nie musisz przełączać się do tego konkretnego folderu w wierszu polecenia
Pełna lista plików wyjściowych 0-bajtowych jest zapisywana do pliku o nazwie 0byte-files.txt
na D:\
odwieźć.
Aby usunąć pliki, użyjesz del
polecenie zamiast Echo
.
dla /r %F w (*.*) do @if %~zF==0 del "%F"
lub podaj ścieżkę folderu docelowego w samym poleceniu:
dla /r "d:\websites" %F w (*.*) do @if %~zF==0 del "%F"
Znajdź i usuń pliki 0-bajtowe o określonym rozszerzeniu pliku
W powyższych przykładach możesz nawet filtrować według rozszerzenia pliku. Na przykład, aby usunąć 0-bajtów .tekst
pliki, których byś użył *.tekst
zamiast *.*
lub *
dla /r %F w (*.txt) wykonaj @if %~zF==0 del "%F"
lub z podaniem ścieżki do folderu:
dla /r "d:\websites" %F w (*.txt) wykonaj @if %~zF==0 del "%F"
To usunęłoby wszystkie puste .tekst
pliki z bieżącego folderu i podfolderów lub rekurencyjnie w określonym drzewie folderów.
Utwórz plik wsadowy
Jeśli chcesz utworzyć plik wsadowy do znajdź i wylistuj puste pliki i wyślij wyniki do pliku tekstowego, oto jeden:
@echo wyłączone. set out="d:\0bajty-pliki.txt" dla /r "%~1." %%A in (*.*) wykonaj jeśli %%~zA == 0 echo "%%~fA" >> %out%
Zapisz powyższą zawartość jako znajdź-puste-pliki.bat
.
Do kasować puste pliki zamiast wyprowadzania listy plików, użyj tego pliku wsadowego:
@echo wyłączone. dla /r "%~1." %%A w (*.*) wykonaj jeśli %%~zA == 0 del "%%~fA"
Do uruchom plik wsadowy względem folderu rekurencyjnie, użyjesz następującej składni:
d:\skrypty\znajdź-puste-pliki.bat d:\strony internetowe
Co robi powyższe polecenie?
-
dla /r %F w (*)
iteruje rekurencyjnie pliki we wspomnianym folderze i podfolderach. -
jeśli %~zF==0
sprawdza, czy plik iterowany jest plikiem 0-bajtowym -
del %%~fA
usuń plik 0-bajtowy
4. Korzystanie z PowerShell
Uruchom program PowerShell.exe i użyj jednej z następujących metod:
Wyświetl puste (0 KB) pliki
Do zdobądź listę plików 0-bajtowych w drzewie folderów, użyj następującej składni wiersza polecenia:
Get-ChildItem -Path "D:\websites\test" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0} | Wybierz -Rozwiń imię i nazwisko usługi
Aby wyprowadzić listę do pliku:
Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0} | Wybierz opcję -Rozwiń pełną nazwę właściwości | Set-Content -Path d:\found.txt
Aby wyprowadzić listę do widoku siatki:
Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0} | out-gridview
Aby wymienić tylko określony typ pliku (np., .bmp
) :
Get-ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0} | out-gridview
Usuń puste (0 KB) pliki
Do kasować wszystkie 0-bajtowe pliki w drzewie folderów, użyj następującej składni wiersza polecenia:
Get-ChildItem -Path "D:\websites" -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0} | Usuń przedmiot
Aby usunąć pliki 0-bajtowe mające konkretne rozszerzenie (np., .bmp
)
Get-ChildItem -Path "D:\websites" -include *.bmp -Recurse -Force | Where-Object { $_.PSIsContainer -eq $false -and $_.Length -eq 0} | Usuń przedmiot
5. Korzystanie z VBScript
Poniższy język VBScript czyści rekursywnie puste (0-bajtowe) pliki w drzewie folderów.
Skopiuj poniższy kod do Notatnika i zapisz go jako del-zero-byte-files.vbs
Opcja Jawne Jeżeli (WScript. Argumenty. Policz <> 1) Następnie WScript. Echo("Stosowanie: cscript DeleteEmptyFolders.vbs {ścieżka}") WScript. Zakończ (1) End If Dim strPath: strPath = WScript. Argumenty (0) Dim fso: Ustaw fso = CreateObject("Skrypty. Obiekt systemu plików") Dim objFolder: Ustaw objFolder = fso. PobierzFolder (strPath) Dim sDelList, sDelErr, sFilePath. Ściem. iCnt = 0 DeleteZeroByteFiles objFolder Sub DeleteZeroByteFiles (folder) Dim podfolder, plik On Error Resume Next 'Pomiń błędy podczas uzyskiwania dostępu do skrzyżowań itp. Dla każdego podfolderu w folderze. SubFolders DeleteZeroByteFiles podfolder Dalej Po błędzie Przejdź do 0 Dla każdego pliku W folder.files Jeśli file.size = 0 Następnie sFilePath = plik. Ścieżka po błędzie Wznów Dalej 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 Jeżeli w przypadku błędu Przejdź do 0 End jeżeli Następny. End Sub If sDelList = "" And sDelErr = "" Then WScript. Echo "Nie znaleziono pustych plików pod drzewem WScript " & _ & strPath & & ". Zrezygnować. End If If sDelList <> "" then sDelList = "Lista usuniętych pustych plików" & vbCrLf _ & String (38,"-") & vbCrLf & sDelList & vbCrLf & _ vbCrLf & "Łącznie: " & iCnt & " pliki usunięte." If sDelErr <> "" then sDelErr = "Nie można usunąć tych plików" & _ vbCrLf & String (45,"-") & vbCrLf & sDelErr WScript. Echo sDelList i vbCrLf i vbCrLf i sDelErr
Stosowanie
Aby uruchomić skrypt w folderze, możesz użyć wscript.exe lub cscript.exe, jak poniżej:
cscript d:\scripts\del-zero-byte-files.vbs "d:\dokumenty podróży" wscript d:\scripts\del-zero-byte-files.vbs "d:\dokumenty podróży"
CScript.exe wyświetla dane wyjściowe w oknie konsoli. Oznacza to, że musisz uruchomić go z okna wiersza polecenia, aby zobaczyć dane wyjściowe.
WScript.exe pokazuje dane wyjściowe w GUI.
poprzez menu Wyślij do
Możesz utworzyć skrót do skryptu w swoim Folder Wyślij do i nazwij to jako Usuń pliki 0-bajtowe. Prefiks wscript.exe
w polu docelowym właściwości skrótu.
Następnie kliknij prawym przyciskiem myszy folder, z którego chcesz rekurencyjnie usunąć puste pliki w drzewie folderów → kliknij Wysłać do → kliknij Usuń pliki 0-bajtowe w menu Wyślij do.
Zobaczysz listę usuniętych pustych plików i sumę oraz pliki, których nie można usunąć z wyświetlonymi odpowiednimi kodami błędów.
6. Korzystanie z pliku DelEmpty.exe
DelEmpty.exe to narzędzie konsoli od IntelliAdmin, które może rekurencyjnie usuwać puste katalogi. Ten program może również szybko usunąć puste pliki 0-bajtowe rekurencyjnie.
Poniżej znajduje się składnia wiersza poleceń programu:
DelEmpty.exe OPCJE [ŚCIEŻKA]
Argument | Opis |
-F | Usuń puste (0-bajtowe) pliki |
-D | Usuń puste katalogi |
-v | Tryb szczegółowy |
-C | Tryb potwierdzenia (pokazuje, co zostało usunięte) |
-s | Uwzględnij podkatalogi (przechodzenie przez podfoldery) |
-I | Wymień, co zostałoby usunięte (nie usunie) |
-y | Usuń bez monitu (t/n) |
Przykład 1: Do lista puste pliki w katalogu i jego podkatalogach, użyłem następującej składni wiersza poleceń:
DelEmpty.exe „Nowy folder” -f -c -s -y -l
Powyższe polecenie wyświetla listę pustych folderów, ale nie usunie ich, ponieważ -I
(tylko lista) przełącznik jest używany.
W przypadku nazw folderów zawierających spacje — np. Mozilla Firefox
, pamiętaj o umieszczeniu podwójnego cudzysłowu wokół ścieżki.
Przykład 2: Do kasować puste pliki w folderze i podfolderach, uruchomiłem ten sam wiersz poleceń, ale bez -I
przełącznik:
DelEmpty.exe „Nowy folder” -f -c -s -y
Czy znasz jakieś inne narzędzie, które może przeszukiwać podfoldery i usuwać puste pliki? Poznajmy Twoje komentarze.
Jedna mała prośba: Jeśli podobał Ci się ten post, udostępnij go?
Jeden „mały” udział od ciebie bardzo pomógłby w rozwoju tego bloga. Kilka świetnych sugestii:- Przypiąć!
- Udostępnij to na swoim ulubionym blogu + Facebooku, Reddit
- Tweetuj to!