【问题标题】:Using powershell to count number of files in subfolder with specific name使用 powershell 计算具有特定名称的子文件夹中的文件数
【发布时间】:2016-10-14 18:49:13
【问题描述】:

所以我开始研究一个问题,即我需要知道某个名称的子文件夹中有多少文件,并且在整个目录中重复多次。我要计算的所有文件夹都具有相同的名称。例如:

Main Folder
    Subfolder
        Folder I want to count
        Folder A
        Folder B
    Subfolder
        Folder I want to count
        Folder C
        Folder D

我能够递归地计算所有子文件夹中的文件数,但我不知道如何只查看名为“我要计算的文件夹”的文件夹。

这是我到目前为止计算所有内容的地方。我需要添加/修改什么才能只查看和计算我想要的区域。我对 supershell 不熟悉,一直在努力理解各种问题并将其拼凑在一起。

Get-ChildItem -recurse | Where {!$_.PSIsContainer} | Group Directory | Format-Table Name, Count -autosize

【问题讨论】:

  • “我要统计的文件夹”是否都具有相同的名称或其他相似之处?
  • 我要统计的所有文件夹都具有相同的名称。抱歉,我会修改并澄清这一点。
  • 获取-childitem -filter Directoryname -Directory -Recurse

标签: file powershell filter count subdirectory


【解决方案1】:

我可能会做这样的事情。

首先获取所有文件夹,然后运行它们。如果文件夹是“folder_I_want”,则获取计数。

$folders = Get-ChildItem C:\Users\David\Documents\SAPIEN\test -Recurse | ?{ $_.PSIsContainer } | select name, fullname

foreach ($folder in $folders)
{
    #Write-Host "$folder"
    if ($folder.name -eq "folder_I_want")
    {
        $fullname = $folder.fullname
        #Gets the count of the files in "Folder I want". It will filter out folders.
        $count = (Get-ChildItem $fullname | where { $_.PSIsContainer -EQ $false }).count
        Write-Host "The amount of files in the folder I want: $count"
    }
}

【讨论】:

  • 谢谢,这真的很接近我的需要!我会在输出行中添加什么来报告完整的目录路径?
  • 例如:“[FULL DIRECTORY PATH] 中的文件数量为 $count” 抱歉重复评论。对 SO 来说还是个新手。
  • 已经定义为$fullname。所以这会起作用:write-host "The amount of files in the path $fullname is $count"
  • 谢谢!这就是我需要的!
【解决方案2】:

像这样?

(gci -Path c:\temp\ -Recurse -File | where fullname -like "*\yourname\*").Count

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2016-02-16
    • 2022-11-10
    • 2011-04-08
    相关资源
    最近更新 更多