gpt4 book ai didi

file - Powershell 计数文件扩展名以及每个扩展名的总文件大小

转载 作者:行者123 更新时间:2023-12-05 02:21:02 26 4
gpt4 key购买 nike

我正在参加针对初学者的 PowerShell 类(class),而在寻求帮助时,讲师完全没有用。我尝试执行的任务是:在我的计算机中搜索以 .doc、.docx、.xls 或 .xlsx 文件扩展名结尾的文件。将文件名和大小(按文件扩展名分组)输出到名为“File_Summary.txt”的文本文件。输出还应以文件总数和每个文件扩展名的总文件大小作为结尾。到目前为止我创建的代码是:

$path = ".\"
$destination = "C:\Users\StayPositibve\Desktop\pleasework1.txt"

$results = Get-ChildItem .\* -Recurse | where {$_.extension -in ".doc",".docx",".xls",".xlsx"} | Select-Object Name, Extension, @{Name="Kbytes";Expression={ "{0:N0}" -f ($_.Length / 1Kb) }}
$results | Sort-Object -Property extension | Out-File $destination
$countFiles = Get-ChildItem .\* -Recurse | where {$_.extension -in ".doc",".docx",".xls",".xlsx"}
$countFiles | Group-Object -Property extension | Out-File $destination -Append

代码运行了(虽然我确定这是糟糕的编码);但是,我不知道如何将每个扩展名的总文件大小加在一起。我有每个扩展名的文件总数,但没有总大小。感谢任何人能给我的帮助!

最佳答案

您想按照 TessellatingHeckler 的建议使用 Measure-Object。这将完成您想要完成的工作:

$path = ".\"
$destination = "C:\Users\StayPositibve\Desktop\pleasework1.txt"

$results = Get-ChildItem .\* -Recurse | where {$_.extension -in ".doc",".docx",".xls",".xlsx"} | Select-Object Name, Extension, @{Name="Kbytes";Expression={ "{0:N0}" -f ($_.Length / 1Kb) }}
$results | Sort-Object -Property extension | Out-File $destination
$results|group extension|select Count,Name,@{l='Total KB';e={$_.Group | Measure-Object -Property kbytes -Sum|select -expand sum}}| Out-File $destination -Append

我重新使用 $results,并像您一样进行分组,但随后我使用 Select 添加一个新属性,在该属性中我获得每个分组的总大小Measure-Object 通过管道传输到 Select -Expand Sum

关于file - Powershell 计数文件扩展名以及每个扩展名的总文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36635943/

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