2017-04-09 149 views
2

メニューを作成しています。オプションの1つは、指定したフォルダのフォルダサイズをレポートしてユーザーに表示することです。私は、フォルダ名にMeasure-Object:オブジェクトの入力に「長さ」のプロパティが見つかりません

cls 
$Path = Read-Host -Prompt 'Please enter the folder name: ' 

$FolderItems = (Get-ChildItem $Path -recurse | Measure-Object -property length -sum)  

$FolderSize = "{0:N2}" -f ($FolderItems.sum/1MB) + " MB" 

を入れた後、私は次のエラーを取得する:

Measure-Object : The property "length" cannot be found in the input for any objects. 
At C:\Users\Erik\Desktop\powershell script.ps1:53 char:48 
+ ... (Get-ChildItem $Path -recurse | Measure-Object -property length -sum) 
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Measure-Object], PSArgumentException 
    + FullyQualifiedErrorId : GenericMeasurePropertyNotFound,Microsoft.PowerShell.Commands. 
    MeasureObjectCommand 
+0

のためのあなたのフォーマット文字列で 'MB'を追加することができます:あなたが使用してファイルのみのためにフィルタリングすることによって、これを避けることができます。 '$ FolderSize =" {0:N2} MB "-f($ FolderItems.sum/1MB)' –

答えて

2

は、フォルダ内のファイルがありませんので、あなただけlengthを持っていないDirectoryInfo -objectsを得ます - プロパティ。

(Get-ChildItem $Path -Recurse | Where-Object { -not $_.PSIsContainer } | Measure-Object -property length -sum) 

またはPS 3.0+

(Get-ChildItem $Path -Recurse -File | Measure-Object -property length -sum) 
関連する問題