Używam systemu Windows.
Chcę usunąć wszystkie pliki i foldery w folderze przez wywołanie systemowe.
Mogę tak zadzwonić:
>rd /s /q c:\destination
>md c:\destination
Czy znasz łatwiejszy sposób?
windows
batch-file
ufukgun
źródło
źródło
Odpowiedzi:
Nie, nie znam żadnego.
Jeśli z jakiegoś powodu chcesz zachować oryginalny katalog (listy ACL, & c.), A zamiast tego naprawdę chcesz go opróżnić, możesz wykonać następujące czynności:
To najpierw usuwa wszystkie pliki z katalogu, a następnie rekurencyjnie usuwa wszystkie zagnieżdżone katalogi, ale ogólnie zachowując katalog najwyższego poziomu taki, jaki jest (z wyjątkiem jego zawartości).
Zwróć uwagę, że w pliku wsadowym musisz podwoić
%
wfor
pętli:źródło
destination
ścieżką, ewentualnie używając cudzysłowów wokół całości, jeśli to konieczne.del c:\destination\*.* /s /q
pracował dla mnie. Mam nadzieję, że u Ciebie też to zadziała.źródło
del *.*
del "../../server/front-end\*.*"
Myślę, że najłatwiej to zrobić:
Ostatni „\” na ścieżce jest ważną częścią.
źródło
mkdir C:\FolderToNotToDelete
wystarczyło dla mnie :)Tak! Użyj Powershell:
źródło
Jeśli nazwy podfolderów mogą zawierać spacje, należy je ująć w cudzysłów. Poniższy przykład ilustruje to dla poleceń używanych w pliku wsadowym.
źródło
Aby usunąć plik:
Aby usunąć folder zawierający wszystkie pliki:
Usunięcie wszystkich plików z określonego folderu (nie usuwanie samego folderu) jest nieco skomplikowane.
del /s *.*
nie może usuwać folderów, ale usuwa pliki ze wszystkich podfolderów. Potrzebne są więc dwa polecenia:Możesz utworzyć skrypt, aby usunąć cokolwiek chcesz (folder lub plik) w następujący sposób
mydel.bat
:Kilka przykładów użycia:
źródło
Jedną z łatwych opcji w jednym wierszu jest utworzenie pustego katalogu gdzieś w systemie plików, a następnie użycie
ROBOCOPY
( http://technet.microsoft.com/en-us/library/cc733145.aspx ) z/MIR
przełącznikiem, aby usunąć wszystkie pliki i podfoldery. Domyślnie robocopy nie kopiuje zabezpieczeń, więc listy ACL w folderze głównym powinny pozostać nienaruszone.Prawdopodobnie chcesz również ustawić wartość przełącznika ponawiania
/r
, ponieważ domyślna liczba ponownych prób to 1 milion.źródło
Miałem folder indeksu z 33 folderami, które wymagały usunięcia wszystkich plików i podfolderów. Otworzyłem wiersz poleceń w folderze indeksu, a następnie użyłem tych poleceń:
Podzieliłem je na dwie linie (wciśnij Enter po pierwszej linii, a gdy zostaniesz poproszony o dodanie drugiej linii), ponieważ wpisanie w jednej linii może nie zadziałać. To polecenie usunie każdy katalog, a następnie utworzy nowy, który jest pusty, usuwając w ten sposób wszystkie pliki i podfoldery w oryginalnym katalogu.
źródło
Przejdź do katalogu nadrzędnego
Line1 pushd „Parent Directory”
Usuń podfoldery
Linia 2 rd / s / q. 2> nul
/superuser/173859/how-can-i-delete-all-files-subfolders-in-a-given-folder-via-the-command-prompt
źródło
pushd
, musiszpopd
też użyć . Niestetypopd
nie działa po usunięciu katalogu. Więc musisz to zrobićcd
zamiastpushd
.To wymaga 2 prostych kroków. [/ q oznacza cicho, / f oznacza wymuszone, / s oznacza podkatalog]
Opróżnij katalog do usunięcia
Usuń katalog
źródło
spróbuj tego, to przeszuka cały MyFolder w katalogu głównym i usunie wszystkie foldery o nazwie MyFolder
źródło
To polecenie usuwa wszystkie pliki i foldery z bieżącej nawigacji w linii poleceń.
źródło