Powiedzmy, że na D:
dysku jest jakiś folder :
D:\Air
D:\Abonden
D:\All
D:\Whatever
Chcę usunąć wszystkie foldery zaczynające się od „A” (w tym wszystkie podfoldery i pliki). Próbowałem tego polecenia:
rmdir D:\A* /s /q
Pojawia się błąd :(
Nazwa pliku, nazwa katalogu lub składnia etykiety woluminu jest niepoprawna.
del
Komenda pracuje *
, ale muszę usuwać foldery, jak również.
Czy istnieje sposób, aby to osiągnąć za pomocą rmdir
polecenia?
windows
command-line
batch
serdar
źródło
źródło
Odpowiedzi:
Użyj tego do przetestowania:
Spowoduje to odpływ poleceń do uruchomienia w wierszu poleceń i pozwoli ci zobaczyć, co się dzieje.
Pamiętaj, że przeszuka to również podfoldery, takie jak „C: \ temp \ jjj \ aaa”, i usunie folder aaa. Jeśli chcesz, aby po prostu spojrzał na foldery najwyższego poziomu „C: \ temp \ aaa”, usuń
"/s"
polecenie z polecenia.Kluczem do tego jest A *, w którym należy wpisać szukany ciąg. Będzie to zaakceptować symbole wieloznaczne, takie jak
aaa*
,aaa*
a*aaa*
jeśli chcesz go.źródło
for /f %%i in ('dir /a:d /s /b A*') do rd /s /q %%i
Usuwanie folderów za pomocą symboli wieloznacznych
Samo polecenie
rmdir
/rd
nie obsługuje symboli wieloznacznych (czyli*
i?
). Możesz obejść to ograniczenie, zawijając je wfor
pętli.Przykładowe użycie
Uwaga: Podczas usuwania plików i folderów może być konieczne zastąpienie
rd
polecenia wecho
pierwszej kolejności. W ten sposób możesz zapewnić, że wszystko, czego nie powinno się usunąć, faktycznie by to zrobiło.Wiele wzorów
Aby usunąć wiele folderów pasujących do różnych wzorców, składnia nie jest zbyt różna. Jak słusznie zauważył @dbenham, wystarczy jedno-wierszowe polecenie. Możesz także określić różne ścieżki:
Bonus - Sprawdzanie istnienia folderu
Jeśli chcesz sprawdzić, czy istnieją określone foldery, możesz użyć następującego polecenia:
Dalsza lektura
źródło
FOR /D
iFOR /D /R
poleceń. Po prostu użyjin( "A*" "B*" "C?D" )
./R
opcji, ponieważ podfolder pasujący do maski może znajdować się pod rodzicem, który tego nie robi.Jak nikt jeszcze nie powiedział OP o plikach ?!
forfiles /P D:\ /M A* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"
źródło
for /d
jak w odpowiedzi and31415 jest zarówno czystsze, jak i bardziej wydajne.adn31415 odpowiedź jest poprawna, ale psuje się, jeśli umieścisz ją w skrypcie wsadowym lub cmd. Waliłem głową przez wiele godzin, dopóki nie zorientowałem się, jak tego używasz.
W oknie poleceń DOS:
W skrypcie wsadowym lub cmd:
Jeśli chcesz umieścić go w pliku „.bat” lub „.cmd”, musisz podwoić znaki „%”.
źródło