递归搜索后排除具有特定扩展名的文件夹

exlude folder with specific extensions after recursively search

你好脚本编写人员,

    get-childitem -recurse -path "C:\test\Media" -include *.mp3  , *m3u, *.jpg

显示我的两个子文件夹“AudioAndJPG”,包括 *.mp3、*m3u、*.jpg 文件和“VideoJPG”,包括 *.avi、*.mkv、*.jpg 文件。 (当然只显示*.mp3、*.m3u 和*.jpg)。 如何排除包含视频和 jpg 文件的整个文件夹,但显示包含 mp3、m3u 和 jpg 文件的所有文件夹?

    get-childitem -recurse -path "C:\test\Media" -include *.mp3  , *m3u, *.jpg| Where-Object { ($_.Directory -notcontains "*.avi")} 

完成工作

此 returns 目录包含不包含 avi 的扩展列表:

gci -Recurse -include *.mp3  , *m3u, *.jpg | ? { !(gci "$($_.Directory)\*.avi") }

如果缓存目录的内部循环 gci 结果,这会快得多。