PowerShell筛选符合特定文件存在条件的嵌套子目录问题求助
PowerShell筛选符合特定文件存在条件的嵌套子目录问题求助
我折腾了好几个小时,查了各种文档和相关论坛的方法,还是没法按条件筛选出大量嵌套文件夹,实在没辙了来求助!
我的需求很明确:要在一个有数千个嵌套子目录的music文件夹里,找出所有层级的子目录,同时满足两个条件:
- 该目录的直接子文件里至少有一个
.mp3文件 - 该目录的直接子文件里没有名为
√.txt的文件
比如下面这个结构,应该返回album目录:
-music --artist ---album ----song1.mp3
而下面这个结构里的album目录会被跳过,因为它有√.txt这个直接子文件:
-music --artist ---album ----√.txt ----song1.mp3
我尝试了这条命令:
gci -recur -dir | ? { !(gci $_ -file -recur -filter √.txt) -and (gci $_ -file -recur -filter *.mp3) } | select name
但达不到预期效果。后来我简化了命令,只测试筛选有.mp3直接子文件的目录:
gci -recur -dir | ? { (gci $_ -file -recur -filter *.mp3) } | select name
结果更奇怪——它只返回当前目录的直接子文件夹(比如“rock”“jazz”这类分类文件夹),完全没遍历到嵌套深处的专辑目录。
给大家看一段实际的文件夹结构参考:
Directory: D:\music\rock\90s\Stereolab\albums:
1992 - Peng!
1992 - Switched On
1994 - Mars Audiac Quintet
希望能有人帮我解决这个问题,如果需要更多信息或者我表述不清楚的地方,随时告诉我!
备注:内容来源于stack exchange,提问作者Michael Scoggins
相关产品推荐
相关产品推荐

