2016-02-19 9 views
1

Я пытаюсь измерить рекурсивный размер каталога ccmcache, который в настоящее время загружается с помощью BITS.Powershell - Измерить размер .tmp-файлов (свойство «Длина» не найдено)

Я использую следующий скрипт Powershell для измерения рекурсивного размера каталога.

(Get-ChildItem $downloadPath -recurse | Measure-Object -property Length -sum).Sum 

Этот скрипт работает для «нормальных» каталогов и файлов, но она не со следующей ошибкой, если каталог содержит только .tmp файлов.

Measure-Object : The property "Length" cannot be found in the input for any objects. 
At line:1 char:27 
+ (Get-ChildItem -Recurse | Measure-Object -Property Length -Sum).Sum 
+       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Measure-Object], PSArgumentException 
    + FullyQualifiedErrorId : GenericMeasurePropertyNotFound,Microsoft.PowerShell.Commands.MeasureObjectCommand 

Как можно измерить рекурсивный размер каталога, который содержит только .tmp файлов, созданных BITS загрузчик.

+0

Как насчет просто 'Get-ChildItem -Recurse'? Выпустил ли какой-либо файл вообще? – PetSerAl

+0

Спасибо за подсказку! Проблема заключалась в том, что файлы были скрыты и должны отображаться с помощью переключателя 'Get-ChildITem -Recurse -Hidden'. – Silthus

ответ

1

Проблема заключается в том, что файлы BITS .tmp скрыты, а Get-ChildItem отображает только видимые файлы по умолчанию.

Чтобы измерить размер всей директории, включая скрытые файлы, необходимо передать переключатель -Hidden.

(Get-ChildItem $downloadPath -Recurse -Hidden | Measure-Object -property Length -sum).Sum 

Но это будет считать только скрытые файлы, за исключением всех видимых файлов. Поэтому для того, чтобы подсчитать все файлы должны быть добавлены результаты скрытой суммы и видимой суммы:

[long](Get-ChildItem $downloadPath -Recurse -Hidden | Measure-Object -property length -sum -ErrorAction SilentlyContinue).Sum + [long](Get-ChildItem $downloadPath -Recurse | Measure-Object -property length -sum -ErrorAction SilentlyContinue).Sum 

Если нет скрытых файлов или видимые файлы не существуют произойдет ошибка. Из-за этого включен переключатель -ErrorAction SilentlyContinue.

 Смежные вопросы

  • Нет связанных вопросов^_^