简体   繁体   中英

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.

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"
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

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!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM