2013-03-22 13 views
5

Chcę, aby ten skrypt wyświetlał listę wszystkich folderów, które zawierają "usunięty" w nazwie folderu, ale nie, jeśli znajdują się w folderze o nazwie "done".Skrypt wsadowy do wyświetlania listy folderów, ale wyklucza określone foldery.

Dla exampel: listy folder, czy to w C:\temp i czy to w C:\temp\random_folder_name ale nie nie, czy to w C:\temp\done

dir /s "C:\temp" | findstr "\deleted" 

opowiadania, wykluczyć wszystkie foldery o nazwie „done”, a ich zawartość.

Odpowiedz

7

Jesteś prawie tam .

findstr/v zwraca wszystkie wiersze, które nie zawierają ciąg

dir/reklama będzie wyświetlana tylko katalogi (Atrribut = katalog)

dir /s /ad "C:\temp" | findstr "\deleted" | findstr /v "\done" 
+0

Ah - ale to wykluczałoby katalogi i pliki o nazwach 'done *' również, nie tylko ''done'' – Magoo

+0

/ad eliminuje nazwy plików - mój błąd. Niemniej jednak, bez '\' after '\ done' to również będzie pasowało do' \ doneeverything'. OTOH, użycie '\ done \' zwolni tylko 'zrobione 'katalogi, takie jak' c: \ were \ all \ done \ here' ale nie wyeliminuje katalogów kończących '\ done' takich jak' c: \ were \ not \ all \ done'. Aby to zrobić, musisz dodać dodatkowe '| findstr/i/e/v" \ done "'. – Magoo

+0

, aby wykluczyć foldernames (użyj tylko nazw plików) dir/a-d. (patrz katalog /?) – Stephan

1
dir /s "C:\temp" | findstr "\deleted"|findstr /i /v "\temp\done\" 

powinny pasowały

  • lub usunąć \temp udział jeśli chcesz pominąć dowolną nazwę, która „Gotowe” jako katalog na ścieżce
+0

tak -/i jest zdecydowanie dobrym pomysłem! – Stephan

+1

sprawdza się idealnie, gdy folder "done" znajduje się w określonej ścieżce. Chcę, aby wykluczyć dowolny folder o nazwie "done" bez względu na to, gdzie, w tym przypadku C: \ Temp, to jest. Przepraszam, jeśli byłem niejasny w tym punkcie. – Tomas

0

w wielu przypadkach:

dir /b /s /aa <path> 

Załatwi sprawę./b dla mniej dokładnych danych wyjściowych,/s dla rekursywnych (podkatalogi) i/aa dla plików gotowych do archiwizacji. Zwykle dotyczy to normalnie tworzonych plików - domyślnie jest włączone!

Powiązane problemy