Strona główna
» WINDOWS
»
Jak usunąć pliki, ale zachować foldery w systemie Windows 10
Jak usunąć pliki, ale zachować foldery w systemie Windows 10
Aby usunąć pliki, ale zachować foldery w systemie Windows 10, użyj programu PowerShell, aby wyświetlić tylko elementy plików i przekazać je do Remove-Itempolecenia delete. Foldery nigdy nie są wysyłane do polecenia delete, więc drzewo folderów pozostaje na swoim miejscu. -WhatIfNajpierw wyświetl podgląd obiektów docelowych: ta operacja pomija Kosz Eksploratora plików, więc przed jej faktycznym uruchomieniem należy wykonać kopię zapasową.
Zanim cokolwiek usuniesz
Wybierz folder nadrzędny, który chcesz wyczyścić, a następnie sprawdź, czy nie zawiera on plików, których nadal potrzebujesz. Zamknij aplikacje, które mogą korzystać z tych plików. Jeśli katalog jest synchronizowany z usługą w chmurze lub udostępniany innym osobom, weź pod uwagę skutki usunięcia plików również z tego folderu.
Użyj pełnej ścieżki dostępu do folderu, a nie litery dysku lub ogólnej lokalizacji, np C:\. .
Najpierw wykonaj kopię zapasową ważnych plików. Remove-ItemNie spowoduje to uruchomienia Eksploratora plików w celu przywrócenia zawartości Kosza.
Uruchom program PowerShell z konta, które ma dostęp do obiektu docelowego. Zacznij od normalnego okna dla własnych plików; podniesienie uprawnień nie nadpisuje wszystkich ograniczeń bezpieczeństwa.
Wybierz folder nadrzędny, którego hierarchię chcesz zachować.
Podgląd plików, które zostaną usunięte przez program PowerShell
Otwórz Start, wyszukaj Windows PowerShell i uruchom go. Wybierz $rootfolder, który chcesz wyczyścić. Zachowaj cudzysłowy wokół ścieżki, zwłaszcza jeśli zawiera spacje:
Zastąp przykładową ścieżkę własną. -LiteralPathTraktuje wartość jako ścieżkę dosłowną, a nie interpretuje symboli wieloznacznych. -FileOgranicza wyniki do plików, -Recurseuwzględnia pliki w zagnieżdżonych folderach oraz -Forceuwzględnia pliki ukryte lub systemowe w wyszukiwaniu. Ostatnia -WhatIfkomenda prosi program PowerShell o pokazanie, co zrobi bez usuwania.
Opcja -WhatIf wyświetla cele plików bez ich usuwania.
Przeczytaj każdą ścieżkę wydrukowaną w podglądzie. Upewnij się, że każda z nich znajduje się w drzewie folderów, które zamierzasz wyczyścić. Program PowerShell powinien raportować operacje na plikach; jeśli ścieżka docelowa jest nieprawidłowa lub widzisz nieoczekiwany katalog, przerwij działanie i popraw je $rootprzed kontynuacją.
Przejrzyj ścieżki osobno; podgląd powinien zawierać nazwy plików, nie katalogów.
Usuń pliki i pozostaw foldery
Gdy podgląd będzie poprawny, uruchom ten sam proces obejmujący wyłącznie pliki, ale bez -WhatIf:
Get-ChildItemDostarcza tylko obiekty plików, więc Remove-Itemusuwa te pliki, pozostawiając folder główny i jego podfoldery na swoim miejscu. Puste foldery pozostają puste; to polecenie ich nie usuwa. Drugie polecenie -Forcepozwala Remove-Itemusunąć pliki ukryte lub tylko do odczytu, ale nie może ominąć kontroli dostępu. Microsoft dokumentuje opcje tylko do plików i listy rekurencyjnej w dokumentacji Get-ChildItem oraz wyjaśnia -Forcei -WhatIfw dokumentacji Remove-Item .
Zagnieżdżony układ folderów zostanie zachowany po usunięciu wpisów pliku.
Ogranicz czyszczenie do jednego rodzaju plików
Aby usunąć tylko określone rozszerzenie, dodaj filtr przed Remove-Item. Na przykład, aby wyświetlić podgląd tylko .txtplików w całym drzewie:
Po sprawdzeniu podglądu uruchom ten sam potok, używając Remove-Item -Forcezamiast Remove-Item -WhatIf. W przypadku powtarzającej się nazwy pliku w różnych podfolderach, użyj filtru $_.Namezamiast $_.Extension, np Where-Object { $_.Name -ieq 'image.png' }. . Te filtry nadal działają na obiektach plików, więc struktura folderów zostaje zachowana.
Sprawdź wynik i obsłuż błędy
Sprawdź, czy ścieżka główna nadal istnieje i policz, czy program PowerShell nadal może znaleźć pliki:
Pierwsze polecenie powinno zwrócić True. Liczba 0oznacza, że wyszukiwanie nie znalazło żadnych pozostałych plików. Jeśli widzisz błędy odmowy dostępu lub pliku w użyciu, elementy, których dotyczy problem, nie zostały usunięte. Zamknij aplikację, używając pliku i spróbuj ponownie; w przypadku chronionych lokalizacji używaj konta z wymaganymi uprawnieniami tylko wtedy, gdy masz uprawnienia do zmiany tych plików. -Forceobsługuje niektóre atrybuty plików, a nie bariery uprawnień.
Jeśli Twoim celem jest usuwanie plików z zachowaniem nazw wszystkich folderów, zachowaj -Filefiltr i sprawdź -WhatIfwynik przed każdym faktycznym uruchomieniem. Unikaj poleceń takich jak Remove-Item $root -Recurse:, które usuwają zawartość katalogów docelowych i mogą również usuwać foldery.