1

現在 BITS でダウンロードされている ccmcache ディレクトリの再帰的なサイズを測定しようとしています。

次の 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

.tmpBITS ダウンローダーによって作成されたファイルのみを含むディレクトリの再帰的なサイズを測定するにはどうすればよいですか。

4

1 に答える 1

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スイッチが付属しています。

于 2016-02-19T10:36:08.630 に答える