2017-02-23 7 views
2

を-includeに適用されません。 ここで何が間違っていますか? .jpgファイルのみを数えるにはどうしたらいいですか?ドキュメントは、この問題にはほとんど不明であるが、あなたの疑いがあるので、カウントが、私は、スクリプトを次のようしているJPG

$FilesInFolder = @($_ | Get-ChildItem -Recurse -Include $Extension -File -Force) 

答えて

2

私は完全にこれを説明することはできません:私はそれを行うには、このラインで何かを持っていることを考えていますが、任意の解決策を見つけることができません右。明示的にパスを指定

  1. 利用-Filter代わりの-Include

    $FilesInFolder = @($_ | Get-ChildItem -Recurse -Filter $Extension -File -Force) 
    
  2. の代わりに、入力オブジェクト

    $FilesInFolder = @(Get-ChildItem -Path $_.FullName -Recurse -Include $Extension -File -Force) 
    
を使用して:あなたは正しい結果を得るために、少なくとも2つの簡単な方法があります

特に2番目のバージョンでは、これがおそらくバグ(または少なくとも非常に奇妙な動作)でGet-ChildItem

+0

または私はどこ-オブジェクト{$ _延長-eq ".JPG" を。}使用することができます –

1

私は問題が$ _ | Get-ChildItemはPathプロパティにパイプされているオブジェクトのPathを生成しません($ _の代わりにPSPathという名前のプロパティがあるため)。

しかし、これは動作しているようです:

$Extension = "*.jpg" 

Get-ChildItem -Path 'C:\Users\ab73541\Documents\' -Directory | ForEach-Object { 

$FilesInFolder = @(Get-ChildItem $_.PSPath -Recurse -Include $Extension -File -Force) 

$FileSize = $FilesInFolder | Measure-Object -property length -Sum | Select -ExpandProperty Sum 
$FileSize = "{0:N2}" -f ($FileSize/1MB) + " MB" 

$NumFiles = $FilesInFolder.Count } 
関連する問題