這裏就是我想要做:PowerShell的搜索
- 搜索我的電腦帶有.doc和.docx,.xls的,或.xlsx
- 輸出文件名和大小結尾的文件(以按文件擴展名分組)到名爲「File_Summary.txt」的文本文件中。
- 我也希望輸出中列出的每個文件擴展名的文件數量和總文件大小的總和。
我甚至無法讓過去的支票夾部分:
$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
這會給我爲每種類型文件的總數是多少?
UPDATE 感謝這裏的人的幫助,我得到了我的代碼工作。但是我遇到了一個問題,那就是說我的文件不存在。問題?我需要列出整個文件夾路徑並使用單引號。
此代碼:
$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
BIG道具馬特幫我整理我的成績這麼好。謝謝你幫助我學習。
我的答案中的一個編輯打破了我的代碼。如果您想再試一次,我會將其恢復到正常工作狀態。 – Matt 2014-10-18 12:37:38