Chcę usunąć wszystkie pliki ze struktury folderów, więc mam pustą strukturę folderów.
Czy można to osiągnąć za pomocą skryptów wsadowych lub skryptów VBScript ?
Próbowałem bardzo podstawowej komendy wsadowej, ale wymagało to od użytkownika usunięcia każdego pliku. Nie było to odpowiednie rozwiązanie, ponieważ istnieje wiele setek plików, które z czasem znacznie wzrosną.
Co możesz zasugerować
windows
script
powershell
batch-file
vbscript
BobJim
źródło
źródło
rd /s /q "c:\folder a
wykona rekurencyjne usuwanie wszystkich plików i folderów wFolder A
Odpowiedzi:
Można to osiągnąć za pomocą programu PowerShell :
To polecenie pobiera każdy element podrzędny
$path
, wykonuje na każdym z nich metodę usuwania i jest dość szybkie. Struktura folderów pozostaje nienaruszona.Jeśli możesz mieć pliki bez rozszerzenia, użyj
zamiast.
Wygląda na to, że
-File
parametr mógł zostać dodany po PowerShell v2. Jeśli tak jest w takim przypadkuTo powinno załatwić sprawę w przypadku plików z rozszerzeniem.
Jeśli to nie działa, sprawdź, czy masz aktualną wersję programu PowerShell
źródło
-Include *.*
nie jest-Include .
duża różnica! :-)-Include .
? Na tym polega problem.powershell --version
? Czy nie mogą używać numeru wersji z cyframi dodatnimi? To jest po prostu szalone. Ponad 1300 głosów pozytywnych na pytanie, jak znaleźć numer wersji programu?Krótki i pakiet PowerShell. Nie jestem pewien, z jaką najniższą wersją PS będzie współpracować.
źródło
rm *
ponieważ tak naprawdę nie jest zalecane wymuszanie (okno dialogowe potwierdzenia ma opcję „Tak dla wszystkich”).Możesz to zrobić za pomocą
del
polecenia:/S
Przełącznik jest usunięcie tylko pliki rekurencyjnie.źródło
/P
opcję, aby poprosić o potwierdzenie każdego usunięcia, aby to sprawdzić.attrib -s -r -h Folder\*.* /s /d
przed usunięciem. Aby uzyskać uprawnienia, użyjtakeown
polecenia.Czytając między wierszami twojego pierwotnego pytania, mogę zaoferować alternatywną linię kodu BATCH, której możesz użyć. Po uruchomieniu uruchomione zostaną tylko te pliki, które mają ponad 60 dni. W ten sposób możesz umieścić to w zaplanowanym zadaniu, a po uruchomieniu usuwa niepotrzebne pliki zamiast wysadzać cały katalog. Możesz zmienić od 60 do 5 dni, a nawet 1 dzień, jeśli chcesz. To nie usuwa folderów.
źródło
Za pomocą programu PowerShell:
źródło
Użyj programu PowerShell, aby usunąć pojedynczy plik lub folder. Przed wykonaniem polecenia Usuń w programie PowerShell musimy upewnić się, że jesteś zalogowany na serwerze lub komputerze za pomocą konta, które ma pełny dostęp do obiektów, które chcesz usunąć.
Z przykładem: http://dotnet-helpers.com/powershell-demo/how-to-delete-a-folder-or-file-using-powershell/
Użycie komend PowerShell do usunięcia pliku
Powyższe polecenie wykona i usunie plik „DummyfiletoDelete.txt” znajdujący się w lokalizacji „C: \ dotnet-helpers”.
Używanie komend PowerShell do usuwania wszystkich plików
Używanie komend PowerShell do usuwania wszystkich plików i folderów
-recurse
drąży i znajduje o wiele więcej plików. Ten–recurse
parametr pozwoli PowerShellowi usunąć wszelkie elementy potomne bez pytania o zgodę. Dodatkowo można dodać parametr –force, aby usunąć pliki ukryte lub tylko do odczytu.Używanie polecenia -Force do wymuszonego usuwania plików
Za pomocą polecenia PowerShell, aby wymusić usunięcie wszystkich plików
źródło
Wypróbuj za pomocą PowerShell. W tym przykładzie chcę usunąć wszystkie pliki .class:
źródło
W Eksploratorze Windows wybierz katalog główny zawierający wszystkie pliki i foldery.
Szukać *
Sortuj według typu (wszystkie foldery będą na górze, a wszystkie pliki wymienione poniżej)
Wybierz wszystkie pliki i naciśnij klawisz Delete.
Spowoduje to usunięcie wszystkich plików i zachowanie struktury katalogów.
źródło
Usuń wszystkie pliki z bieżącego katalogu i podkatalogów, ale pozostawiając strukturę folderów.
(
/Q
) służy do pytania użytkownika, czy jest w porządku, aby go usunąćUwaga : wypróbuj to bez
/Q
upewnienia się, że nie usuwasz niczego cennego.źródło
To najprostszy sposób IMO
Otwórz PowerShell, przejdź do katalogu (
cd
), NASTĘPNIE(Poof) wszystko zniknęło ...
Jeśli chcesz usunąć na podstawie określonego rozszerzenia
Wszystkie pozostałe odpowiedzi sprawiają, że jest to bardziej mylące niż to konieczne.
źródło
źródło
Jako uzupełnienie powyższych odpowiedzi, w rzeczywistości nie ma potrzeby używania Get-Childitem i przekazywania wyniku do potoku w powyższych odpowiedziach, ponieważ słowo kluczowe -Include jest zawarte w poleceniu Remove-Item
Można po prostu:
Remove-Item -Include " . " "C: \ Temp" -Recurse
źródło