gpt4 book ai didi

powershell - 递归计算子文件夹中的文件

转载 作者:行者123 更新时间:2023-12-04 02:34:33 24 4
gpt4 key购买 nike

我正在尝试计算目录中所有子文件夹中的文件并将它们显示在列表中。

例如以下目录树:

TEST
/VOL01
file.txt
file.pic
/VOL02
/VOL0201
file.nu
/VOL020101
file.jpg
file.erp
file.gif
/VOL03
/VOL0301
file.org

应该作为输出:
PS> DirX C:\TEST

Directory Count
----------------------------
VOL01 2
VOL02 0
VOL02/VOL0201 1
VOL02/VOL0201/VOL020101 3
VOL03 0
VOL03/VOL0301 1

我从以下几点开始:
Function DirX($directory)
{
foreach ($file in Get-ChildItem $directory -Recurse)
{
Write-Host $file
}
}

现在我有一个问题:为什么我的函数没有递归?

最佳答案

这样的事情应该工作:

dir -recurse |  ?{ $_.PSIsContainer } | %{ Write-Host $_.FullName (dir $_.FullName | Measure-Object).Count }
  • dir -recurse列出当前目录下的所有文件和管道 (|) 结果到
  • ?{ $_.PSIsContainer }它过滤目录,然后再次将结果列表输送到
  • %{ Write-Host $_.FullName (dir $_.FullName | Measure-Object).Count }这是一个 foreach 循环,对于列表的每个成员 ($_) 显示全名和以下表达式的结果
  • (dir $_.FullName | Measure-Object).Count它提供 $_.FullName 路径下的文件列表,并通过 Measure-Object 计算成员数。
  • ?{ ... }是 Where-Object
  • 的别名
  • %{ ... }是 foreach
  • 的别名

    关于powershell - 递归计算子文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25506599/

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