问题
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.
回答1:
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"
回答2:
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
回答3:
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!
来源:https://stackoverflow.com/questions/15568541/batch-script-to-list-folders-but-exclude-specific-folders