Цель script заключается в следующем:
- Распечатайте количество рекурсивно найденных файлов в каталоге (опуская сами папки)
- Распечатайте общий размер файла сумм в каталоге
- Не сбой компьютера из-за огромного использования памяти.
До сих пор (3) является трудной частью.
Вот что я написал и протестировал до сих пор. Это отлично работает в папках со сто или даже тысячей файлов:
$hostname=hostname
$directory = "foo"
$dteCurrentDate = Get-Date –f "yyyy/MM/dd"
$FolderItems = Get-ChildItem $directory -recurse
$Measurement = $FolderItems | Measure-Object -property length -sum
$colitems = $FolderItems | measure-Object -property length -sum
"$hostname;{0:N2}" -f ($colitems.sum / 1MB) + "MB;" + $Measurement.count + " files;" + "$dteCurrentDate"
В папках с миллионами файлов переменная $colitems
становится настолько массивной из коллекции информации миллионов файлов, что делает ее неустойчивой. Есть ли более эффективный способ рисовать и хранить эту информацию?