gpt4 book ai didi

powershell - 列出所有不包含通配符匹配文件的目录

转载 作者:行者123 更新时间:2023-12-02 22:32:35 26 4
gpt4 key购买 nike

我需要能够列出根文件夹中不包含包含字符串 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

输出:
test789
test013

最佳答案

您可以使用 Get-ChildItem , Where-Object , 和 Select-String :

Get-ChildItem -Directory |
Where-Object { -not (Get-ChildItem $_ -File -Recurse -Filter *merged*) } |
Select-Object Name, LastWriteTime

下面是对每行的作用的解释:
  • 获取当前目录下的所有目录。
  • 设置一个过滤器,在每个目录中递归搜索包含字符串 merged 的文件名。 .如果没有找到,只传递目录。
  • 获取 NameLastWriteTime每个目录的属性。

  • 还要注意,如果需要,您可以更简洁地编写它:

    gci -dir | ? { !(gci $_ -file -recur -filter *merged*) } | select name, *w*time

    关于powershell - 列出所有不包含通配符匹配文件的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24661751/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com