2

我在 Windows 中有一个目录结构,如下所示:

\Root 
    \SUB-DIR1
        \A1
        \B1
        \AA1
    \SUB-DIR2
        \A2
        \C2
        \AA2
   \SUB-DIR3
        \A3
        \B3
        \AA3

我想使用诸如"starts with 'AA' and the length of the subdirectory name is 3" 之类的查询来计算目录(不是文件) 。

我试过了:

$f = get-childitem -Path C:\ROOT -recurse 
Write-Host $f.Count 

...但我不确定如何过滤特定的子项目并计算它。Powershell 或 Cmd 会有很大帮助。

4

1 回答 1

1

将目录名称与正则表达式匹配。模式^AA.$将匹配开始 ( ^)、得到 ( AA)、还有一个字符 ( .) 和字符串结束 ( $) 的字符串。因为点几乎可以匹配任何东西,比如 AAA、AAB、AA!等也包括在内。像这样,

# In addition, include only directories by checking PsIsContainer
gci Root -Recurse | ? { $_.PsIsContainer -and $_.name -match "^AA.$" }

至于如何获得计数,要么将 gci 输出到数组中并检查其计数成员,要么将结果传递给Measure-Object并选择计数成员。

于 2013-06-27T04:47:11.777 回答