2017-11-29 3 views
0

多くのサブフォルダからファイルを数える方法を探していますが、難しい部分は名前の一部でフィルタしたいということです。具体的に言えば、すべてのファイルの名前の中央に日付があります。特定のフォルダ内のファイルを数えたい場合、私はこれを使用します:名前でファイルをカウントする

dir * |%{$_.Name.SubString(7,8)} | group |select name,count|ft -auto 

そして魅力的です。問題は複数のフォルダを見ることができないということです。また、2番目の問題は、その結果、グループ化されたカウントのパス名を確認したいということです。私もこれをテストしています:

dir -recurse | ?{ $_.PSIsContainer } | %{ Write-Host $_.FullName (dir $_.FullName | Measure-Object).Count } 

私はこの機能の名前の中から日付フィルタを実装することはできません。私はフォーマットの仕方と結果をどのようにしたいかの例も付け加えています。

enter image description here

任意のヘルプ?私は多くのサブフォルダが、トリッキーな部分からファイルをカウントする方法を探しています、事前に

おかげで、 コスタス

+0

あなたは部品でそれを破る必要があります。ファイルを取得し、マッチングを行い、カウントを行います。ワンラインは、クールで楽しいですが、いつも最高のソリューションであるとはかぎりません。 – Snak3d0c

+0

['Select-Object'](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-object?view=powershell-5.1)と['グループ名-Object'](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/group-object?view=powershell-5.1)を参照してください。 'Select-Object'は[カスタムプロパティを選択できます(https://technet.microsoft.com/en-us/library/ff730948.aspx?f=255&MSPPError=-2147217396)。このセットを使用すると、そのプロパティでグループ化してカウントを返すことができます。 – Clijsters

+0

'Get-ChildItem * -Recurse | Select-Object -Property name、@ {Name = "CustomDate"; Expression = {$ _。Name.Split( "_")[1]}} |グループオブジェクト - プロパティCustomDate |オブジェクト名の選択、カウント – Clijsters

答えて

0

は、私は自分の名前の一部でそれらをフィルタリングすることです。具体的に言えば、すべてのファイルの名前の中央に日付があります。

あなたが本当にフィルタにしたい場合には、私には100%明確ではありません彼らは、またはグループへそれらはカウントを前に、私は両方を紹介します。

# C:/temp/testFolder/myName_123_folder/text.txt 
Get-ChildItem * -Recurse | 
    Select-Object -Property Name, @{Name = "CustomDate"; Expression = {$_.Name.Split("_")[1]}} | 
    #This is how you would _filter_ 
    #Where-Object {$_.Custom -eq "123"} | 
    Group-Object -Property CustomDate | 
    Select-Object Name, Count 

は前に、ファイル名がこのパターンに一致するかどうかをチェックすることを忘れないでください:自分の名前のこの真ん中_こので区切られ、例えば、あるは、以下の方法を実現することができると仮定すると

分割する。これは、gciと1 selectの間のSelect-Objectステートメントで行うことができます。このステートメントは、特定のパターンのファイル名をチェックします。


あなたの質問は、あなたがディレクトリのみをフィルタリングしたかったということも示しています。非常に効率的ではありません

​​

を。 Docs of Get-ChildItemから

-Directory

は、ディレクトリ(フォルダ)を取得します。

ディレクトリのみを取得するには、-Directoryパラメータを使用し、-Fileパラメータを省略します。ディレクトリを除外するには、-Fileパラメーターを使用し、-Directoryパラメーターを省略するか、-Attributesパラメーターを使用します。

これは、ディレクトリのみを検索するための好ましい方法があることを意味:

Get-ChildItem -Recurse -Directorz | % { #[...] 
関連する問題