2013-03-22 24 views
5

Desidero che questo script elenchino tutte le cartelle che contengono "cancellato" nel nome della cartella ma non se si trovano in una cartella denominata "done".Script batch per elencare le cartelle ma escludere cartelle specifiche

Per exampel: lista la cartella se è in C:\temp e se è in C:\temp\random_folder_name ma non se non è in C:\temp\done

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

racconto, esclude tutte le cartelle denominate "fatto" e il loro contenuto.

risposta

7

siete quasi arrivati .

Findstr/v restituisce tutte le righe, che non contengono la stringa

dir/annuncio verrà visualizzato solo le directory (Atrribut = Directory)

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

Ah - ma ciò escluderebbe anche le directory e i file denominati 'done *', non solo ''done'' – Magoo

+0

Il/ad elimina i nomi di file - il mio errore. Tuttavia, senza un '\' dopo '\ done' questo corrisponderà anche a' \ doneeverything'. OTOH, usando '\ done \' esenterà solo le directory 'done' come' c: \ were \ all \ done \ here' MA non eliminerà le directory che terminano '\ done' come' c: \ were \ not \ all \ done'. Per fare ciò, dovresti aggiungere un ulteriore '| findstr/i/e/v" \ done "'. – Magoo

+0

per escludere nomi utente (utilizzare solo nomi file) dir/a-d. (vedi dir /?) – Stephan

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

dovrebbe andare bene il disegno di legge

  • o rimuovere la parte \temp se si vuole omettere qualsiasi nome che è 'fatto' come directory sul percorso
+0

sì -/i è definitivamente una buona idea! – Stephan

+1

fa il lavoro perfetto se la cartella "done" si trova in quel percorso specifico. Voglio escludere qualsiasi cartella chiamata "done", non importa dove, in questo caso C: \ Temp, lo è. Scusate se non sono stato chiaro su questo punto. – Tomas

0

in molti casi:

dir /b /s /aa <path> 

Farà il trucco./b per output meno dettagliato,/s per ricorsivo (sottodirectory) e/aa per solo file pronti per essere archiviati. Questo di solito è il caso per i file creati normalmente - per impostazione predefinita è attivo!

Problemi correlati