2008-12-03 8 views
17

Próbuję napisać plik wsadowy systemu Windows, który może usuwać pliki z podkatalogów. Nie chciałbym twardo kodować struktury katalogów, więc mogę używać tego procesu z innymi projektami.Jak usunąć pliki N typu X z podfolderów Y z pliku wsadowego Windows?

  • muszę usuwać pliki typu X,
  • mam folder nadrzędny C:\MyProject,
  • Istnieją Y podfoldery C:\MyProject\?,
  • istnieją pliki N do usunięcia.

Czy istnieje szybka funkcja del (typu) po prostu brakuje?

Odpowiedz

33

Właściwie można użyć standardowego del polecenie:

c: 
cd MyProject 
del /S *.type 

Jeżeli typ jest rozszerzenie chcesz usunąć, a parametr/S sprawdzi się we wszystkich podfolderów MyProject.

+0

jesteś świetny. – Jeremiah

+0

Zabawne, po latach programowania myślałem, że to będzie coś w rodzaju pętli z "if" i innymi rzeczami ... –

+1

proszę zauważyć, że spowoduje to również usunięcie plików z pasującym podciągiem na początku jego rozszerzenia. Na przykład 'del/S * .doc' usuwa oba typy plików' .doc' i '.docx'. –

1

Jeśli polecenie del nie miał flagę/S, aby usunąć rekursywnie, użyję AWK zrobić coś takiego (należałoby narzędzia UNIX dla Windows):

dir MyProject\*.* /ad /s /b | gawk "{print \"del \\\"\" $0 \"\\*.type\\\"\";}" | cmd 

My 2 centy na wypadek, gdybyś musiał zrobić coś podobnego (stosując program do wszystkich plików typu X we wszystkich podfolderach) za pomocą polecenia, które nie ma flagi rekursywnej.

Powiązane problemy