How do I get the number of distinct files in a directory in powershell?

时间:2017-06-12 16:49:45

标签: powershell powershell-v4.0

I currently have this code which returns the total number of files but I don't want to count multiple files in this number count?

Lets say I have this:

01Red.txt
01Blue.txt
02Red.txt
05Red.txt
05Green.txt

Get-ChildItem -File *.txt -Path "C:\Users\Test\Desktop\TestDirectory" | Measure-Object | %{$_.Count}

I want to return a total count of 3 based on 01,02,05 but with my code I get 5.

How can I get it to return 3 and ignore everything past the first 2 characters in the string?

2 个答案:

答案 0 :(得分:7)

I might suggest Group-Object:

Get-ChildItem *.txt | Group-Object { $_.Name.Substring(0,2) }

Add | Measure-Object to count the number of groupings (this would be 3 in your example).

答案 1 :(得分:5)

Get-ChildItem -File *.txt -Path "C:\Users\Test\Desktop\TestDirectory" 
| select {$_.BaseName.Substring(0,2)} | Get-Unique -AsString | measure