Итак, у меня есть набор каталогов 00-99 в папке. Каждый из этих каталогов имеет 100 подкаталогов, 00-99. Каждая из этих подкаталогов имеет тысячи изображений.
Что я пытаюсь сделать, так это получить отчет о ходе выполнения, пока он вычисляет средний размер файла, но я не могу заставить его работать. Вот мой текущий запрос:
get-childitem <MyPath> -recurse -filter *.jpeg | Where-Object { Write-Progress "Examining File $($_.Fullname)" true } | measure-object -Property length -Average
Здесь показана панель, которая обновляется по мере обработки каждого файла, но в конце я не получаю данных о среднем размере файла. Понятно, что я делаю что-то не так, потому что я полагаю, что попытка взломать Where-Object, чтобы напечатать оператор выполнения, вероятно, плохая идея (tm).
Поскольку существуют миллионы и миллионы изображений, этот запрос, очевидно, занимает ОЧЕНЬ ДЛИННОЕ время для работы. get-childitem в значительной степени будет составлять большую часть времени запроса, если я правильно понимаю вещи. Любые указатели, чтобы получить то, что я хочу? АКА, мой результат в идеале будет:
Starting...
Examining File: \00\00\Sample.jpeg
Examining File: \00\00\Sample2.jpeg
Examining File: \00\00\Sample3.jpeg
Examining File: \00\00\Sample4.jpeg
...
Examining File: \99\99\Sample9999.jpg
Average File Size: 12345678.244567
Редактировать: я могу сделать простой вариант:
get-childitem <MyPath> -recurse -filter *.jpeg | measure-object -Property length -Average
А потом просто уйдите с моей рабочей станции на полтора дня или еще что-то, но это кажется немного неэффективным = /