PowerShell: Hogyan lehet rekurzívan megszámolni a fájlokat az almappákban
Gyakran előfordulhat, hogy a PowerShell segítségével rekurzívan megszámolja egy adott könyvtár egyes almappáiban található fájlok számát.
Ehhez a következő szintaxist használhatja:
Dir -Recurse -Directory |
ForEach-Object {
Write-Host $_.FullName (Dir $_.FullName | Measure-Object).Count
}
Ez a konkrét példa visszaadja az aktuális könyvtár minden almappájának teljes elérési útját, valamint az egyes almappákban található fájlok teljes számát.
Íme, mit csinálnak a különböző parancsok:
- Dir -Recurse -Directory: Az aktuális könyvtár összes almappájának lekérése
- ForEach-Object: Végezzen el egy adott feladatot az egyes almappákon
- Write-Host $_.FullName: Nyomtassa ki az aktuális almappa teljes elérési útját
- (Dir $_.FullName | Measure-Object).Count: Az aktuális almappában lévő fájlok teljes számát adja vissza
A következő példa bemutatja ennek a szintaxisnak a gyakorlati használatát.
Példa: PowerShell használata az almappákban lévő fájlok rekurzív számlálására
Tegyük fel, hogy jelenlegi könyvtárunk elérési útja a következő:
c:\users\bobbi\data1Tegyük fel, hogy meg akarjuk számolni az aktuális könyvtárunk egyes almappáiban található fájlok teljes számát.
Mielőtt ezt megtennénk, először a fa paranccsal tekinthetjük meg aktuális könyvtárunk mappaszerkezetét:
Láthatjuk, hogy jelenlegi könyvtárunk szerkezete a következő:
├───athletes
├───coaches
└───managers
├───admin
└───rosterA data1 mappán belül három mappa található: sportolók, edzők és menedzserek.
A managers mappán belül két mappa található: admin és roster.
A következő szintaxist használhatjuk az egyes almappákban lévő fájlok teljes számának megszámlálásához:
Dir -Recurse -Directory |
ForEach-Object {
Write-Host $_.FullName (Dir $_.FullName | Measure-Object).Count
}A következő képernyőkép azt mutatja be, hogyan kell ezt a szintaxist a gyakorlatban használni:
A kimenet megjeleníti az egyes almappák teljes elérési útját, valamint az egyes almappák teljes fájlszámát.
Például láthatjuk:
- c:\users\bobbi\data1\athletes összesen 2 fájlt tartalmaz.
- c:\users\bobbi\data1\coaches 1 fájlt tartalmaz.
- c:\users\bobbi\data1\managers összesen 3 fájlt tartalmaz.
És így tovább.

