Tom*_*tta 4 filesystems powershell directory-structure wildcard
我需要能够列出根文件夹中不包含包含字符串的文件的所有目录merged
。因此,例如,如果我从目录运行脚本C:\out
,我将获得C:\out
其中与通配符不匹配的所有文件夹的列表merged
。
例子:
树:
-c:\out
--c:\out\test123
---sample.meta
---sample_merged.meta
--c:\out\test456
---sample.meta
---sample_merged.meta
--c:\out\test789
---sample.meta
--c:\out\test013
---sample.meta
Run Code Online (Sandbox Code Playgroud)
输出:
test789
test013
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用Get-ChildItem
,Where-Object
以及Select-String
:
Get-ChildItem -Directory |
Where-Object { -not (Get-ChildItem $_ -File -Recurse -Filter *merged*) } |
Select-Object Name, LastWriteTime
Run Code Online (Sandbox Code Playgroud)
下面是对每行的作用的解释:
获取当前目录下的所有目录。
设置一个过滤器,在每个目录中递归搜索包含字符串的文件名merged
。如果没有找到,只传递目录。
获取每个目录的Name
和LastWriteTime
属性。
另请注意,如果需要,您可以更简洁地编写它:
gci -dir | ? { !(gci $_ -file -recur -filter *merged*) } | select name, *w*time
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3763 次 |
最近记录: |