Weboldal keresés

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\data1

Tegyü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
    └───roster

A 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.

Kapcsolódó cikkek