标题: [问题求助] PowerShell获取脚本所在文件夹下的某一级的符合特定要求的文件夹名称 [打印本页]
作者: 5i365 时间: 2022-1-21 10:06 标题: PowerShell获取脚本所在文件夹下的某一级的符合特定要求的文件夹名称
不知下面这个功能, 可否实现, 提前感谢!
描述如下:
脚本所在文件夹, 有A和B....等多个文件夹, 其内部的文件夹结构分别如下:
A
AA1
AAA1
NO
OK
AA2
AAA2
NO
OK
NO
OK
------------------------------
B
BB1
BBB1
NO
OK
BB2
BBB2
NO
OK
NO
OK
.....其它已省略
------------------------------
期待的效果:
脚本中有个级别变量$jb, 还有个要排除的文件夹数组变量$pc
1.如果我把变量分别设为$jb=1, $pc=NO, OK【即:下探到第1级,排除每级下名为NO和OK的文件,下一级文本前有个tab占位】
则脚本执行后生成的info.txt内容如下:
A
AA1
AA2
B
BB1
BB2
.....其它已省略
-------------------------------------------------------------------------------------------------------------
2.如果我把变量分别设为$jb=2, $pc=OK【即:下探到第2级,排除每级下名为OK的文件,下一级文本前有个tab占位】
则脚本执行后生成的info.txt内容如下:
A
AA1
AAA1
NO
AA2
AAA2
NO
NO
B
BB1
BBB1
NO
BB2
BBB2
NO
NO
.....其它已省略
作者: idwma 时间: 2022-1-24 15:01
- $jb=1
- $pc='NO', 'OK'
- (((dir -rec -name -exc $pc) -match "^[^\\]*(?:\\[^\\.]*){1,$jb}$")|sort{$_ -replace "^([^\\]{$jb})",'$1'})|%{foreach($i in ($_ -split '\\')){$a+$i;$a+="`t"};rv a}|select -unique
复制代码
作者: 5i365 时间: 2022-1-25 11:36
本帖最后由 5i365 于 2022-1-25 11:40 编辑
回复 2# idwma
感谢帮忙, 刚试了一下,
$jb=2
$pc='NO'
显示信息如下, 没有显示B下没显示OK , BB2下的也没显示
示例:https://send.cm/d/8Anv
A
AA1
AA11
AA12
OK
AA2
AA21
AA22
OK
B
BB1
BB11
BB12
BB2
请按任意键继续. . .
作者: idwma 时间: 2022-1-25 15:07
本帖最后由 idwma 于 2022-1-25 15:10 编辑
- $jb=2
- $pc='NO', ''
- foreach($j in dir|?{$_.PSIsContainer}){$j.name;(((dir $j -rec -name -exc $($pc+'*.*')) -match "^[^\\]*(?:\\[^\\.]*){0,$($jb-1)}$")|sort)|%{foreach($i in ($_ -split '\\')){"`t"+$a+$i;$a+="`t"};rv a}|select -unique}
复制代码
回复 3# 5i365
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |