powershell - 如何计算 2 个文件夹中的文件并使用 powershell 分隔每个文件夹的总数?
问题描述
我有 2 个文件夹。在这 2 个文件夹内有一些具有 3 个扩展名文件(jpg、png、gif)的文件。我想计算这两个文件夹中有多少文件并指定文件夹。
我期望我能得到这个结果
Folder1
.jpg = 12
.png = 2
.gif = 4
Folder2
.jpg = 6
.png = 4
.gif = 2
我试过了,但我只计算那些文件夹中的所有文件,不能指定文件夹。任何人都可以提供想法,非常感谢它。谢谢
$FindFolder = Get-ChildItem "D:\"
ForEach ($folder in $FindFolder)
{
$folder
Get-ChildItem -Name "D:\$folder" -Recurse -File -Include *.jpg, *.png, *.gif | Measure-Object | ForEach-Object{$_.Count}
}
解决方案
这应该会给你类似的东西。这个用途Group-Object
,更多细节可以在这里找到。Select-Object
还使用计算表达式来获取它找到的文件的父文件夹。
您需要做的就是根据需要调整Get-ChildItem
过滤器!
$results = Get-ChildItem D:\ -Recurse -File | Select-Object Extension, `
@{Name="Parent"; Expression={[System.IO.Path]::GetDirectoryName($_.FullName)}}
$results | Group-Object Parent, Extension -NoElement | `
Select-Object Count, @{Name="Extension"; Expression={($_.Name -split ',')[0]}}, `
@{Name="Parent"; Expression={($_.Name -split ',')[1]}} | Sort-Object Count -Descending
输出:
Count Extension Parent
----- --------- ------
2274 .pdf D:\PDFBULK
1509 .doc D:\testFolder\SubFolder
402 .msg D:\testFolder\SubFolder
97 .msg D:\Marketing
推荐阅读
- apache-spark - 如何使用 Apache Spark 和 Sparkube 实施“最后一个非空”措施?
- ruby - 将简单的 Ruby 脚本及其输出保存在一个文件中
- scala - Spark:将 RDD[String] 转换为 DataFrame
- javascript - 当使用 webpack 等将所有内容打包到一个脚本中时,Npm、Dev 依赖或依赖?
- javascript - 未播放来自 WebRTC 远程对等视频元素的音频
- apache-spark - 如何使用 OneHotEncoder 在 Spark ML 逻辑回归中设置参考水平
- javascript - 无法从我的 index.html 中引用由 webpack 在 dist 文件夹中生成的 javascript 和 css 文件
- json - 颠簸转换为数组
- mysql - MYSQL 表导入时显示为空
- amazon-ec2 - cloud-init.yaml 中的私有 docker 注册表