这是我正在尝试做的事情:
我什至无法通过检查文件夹部分:
$Folder_To_Check = C:\AIU
$Report_File_Location = "File_Summary.txt"
$files= Get-Childitem -Path $Folder_To_Check-Include *doc, *docx, *xls, *xlsx $Report_File_Location
$totalfiles = ($files | Measure-Object).Count
$totalsize = ($files | Measure-Object -Sum Length).Sum
更新。这又是我的代码,其中对建议进行了一些更改,但仍然空白。
$Report_File_Location = "File_Summary.txt"
$files= Get-Childitem C:\AIU -include "*doc", "*docx", "*xls", "*xlsx"-recurse | Sort-Object | Get-Unique -asString
$files | Out-File $Report_File_Location
$totalfiles = ($files | Measure-Object).Count
$totalsize = ($files | Measure-Object -Sum Length).Sum
write-host "totalfiles: $totalfiles"
write-host "totalsize: $totalsize"
我一直在寻找更多的东西,我认为我不应该使用
Sort-Object
而是使用Group Extension -NoElement | Sort Count -Descending
来给我每种类型的文件总数?更新
多亏了这里的人的帮助,我的代码才能正常工作。但是我遇到一个问题,就是说我的文件不存在。问题?我需要列出整个文件夹路径并使用单引号。
此代码有效:
$Folder_To_Check = 'C:\Users\Sarah\Documents\AIU'
$Report_File_Location = "File_Summary.txt"
$results = Get-ChildItem $Folder_To_Check -Include *.doc,*.docx,*.xls,*.xlsx -Recurse
$results | Group-Object extension | ForEach-Object {
[PSCustomObject]@{
Results = $_.Name
Count = $_.Count
Size = [Math]::Round(($_.Group | Measure-Object -Sum Length | Select-Object - ExpandProperty Sum) / 1MB,2)
}
} | Out-File $Report_File_Location -Append
Matt的BIG Prop 帮助我很好地整理了结果。感谢您帮助我学习。
最佳答案
$Folder_To_Check = C:\AIU
$Report_File_Location = "File_Summary.txt"
$results = Get-ChildItem $Folder_To_Check -Include *.doc,*.docx,*.xls,*.xlsx -Recurse
$results | Group-Object extension | ForEach-Object {
[PSCustomObject]@{
Extension = $_.Name
Count = $_.Count
Size = [Math]::Round(($_.Group | Measure-Object -Sum Length | Select-Object -ExpandProperty Sum) / 1MB,2)
}
} | Out-File $Report_File_Location -Append
像以前一样,使用
Get-ChildItem
获取您要查找的所有文件。 Vasja还提到了它,您可能还想使用-Recurse
从子目录中获取结果。使用Group-Object
按扩展名收集文件。对于每个集合输出,扩展名和文件计数的自定义对象(均为Group-Object
)以及该特定扩展名的所有文件的大小均转换为MB并四舍五入到小数点后两位。更新为2.0
万一您只安装了2.0,我想提供并回答适合的方法。
$results | Group-Object extension | ForEach-Object {
$properties = @{
Extension = $_.Name
Count = $_.Count
Size = [Math]::Round(($_.Group | Measure-Object -Sum Length | Select-Object -ExpandProperty Sum) / 1MB,2)
}
New-Object -TypeName PSObject -Property $properties
}
关于powershell - Powershell搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26431025/