Tomas
Tomas

Reputation: 75

Batch script to list folders but exclude specific folders

I want this script to list all folders that contains "deleted" in the folder name but not if they is in a folder called "done".

For exampel: list the folder if it's in C:\temp and if it's in C:\temp\random_folder_name but not not if it's in C:\temp\done

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

short story, exclude all folders named "done" and their content.

Upvotes: 5

Views: 23221

Answers (3)

SuperTurbo
SuperTurbo

Reputation: 1

in lots of cases:

dir /b /s /aa <path>

Will do the trick. /b for less verbose output, /s for recursive (sub directories) and /aa for only files ready to be archived. This is usually the case for normal created files - it defaults to on!

Upvotes: 0

Stephan
Stephan

Reputation: 56180

You are almost there.

Findstr /v returns all lines, that do not contain the string

dir /ad will only show directories (Atrribut=Directory)

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

Upvotes: 10

Magoo
Magoo

Reputation: 79983

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

should fit the bill

  • or remove the \temp part if you want to omit any name which has 'done' as a directory on the path

Upvotes: 1

Related Questions