A Powershellben az összes fájl listázása egy könyvtárban nagyon egyszerű feladat. Csak a következő parancsot kell használnunk, hogy csak az összes fájlt listázzuk csak egy könyvtárban.

Tartalomjegyzék:

  • PowerShell List files in a Directory.
  • gci alias for get-chiltitem.
  • dir alias for get-childitem.
  • PowerShell csak könyvtárak listázása.
  • PowerShell csak könyvtárak listázása egy rövidebb szkript segítségével.
  • PowerShell fájlok rekurzív listázása.
  • PowerShell könyvtárak rekurzív listázása.
  • Egy bizonyos kiterjesztéstípusú fájlok listázása.
  • PowerShell rekurzívan listázza egy bizonyos kiterjesztés-típusú fájlokat.
  • Fájlok listázása az alkönyvtárak mélységéig.
  • Verdict.

Az alábbiakat is keresik:

Working Snippet for Start-Job PowerShell 2020

gci -file

A fenti szkript végrehajtása és a kimenet az alábbi képen látható.

kapja az összes fájlt egy könyvtárban

Ezeknek számos változata létezik, és ebben a bejegyzésben jó néhányat meglátogatunk. Megnézzük, hogyan keletkezik a gci alias, és megnézünk néhány más aliast is. Van mód arra, hogy csak a könyvtárakon belüli könyvtárakat kapjuk meg, és arra is, hogy bizonyos mélységig.

Minden lehetséges funkciót meglátogatunk a könyvtárban lévő fájlok listázásával kapcsolatban.

PowerShell List Files in a Directory:

A PowerShell fejlesztői indokolatlanul egyszerűvé tették a fájlok és mappák kezelését a PowerShellben. A hagyományos szkripteléssel ellentétben a PowerShellben nem kell túl sokat gondolkodnunk a szkript felépítésén. Ez azért van, mert a PowerShell objektumalapú be- és kimenet. Ha valaki jól ért egy objektumorientált programozási nyelvhez, annak a PowerShellben a szkriptírás magától értetődően megy.

Kezdésként, ha csak a könyvtárban lévő fájlokat szeretnénk megszerezni, használhatjuk a get-childitem cmdletet. A cmdlethez hozzáadjuk a -file kapcsolót, hogy csak egy adott könyvtárban lévő fájlokat hívjuk le.

get-childitem -file

get child item file

Ezzel egyértelműen megoldódik a problémánk. De tudjuk-e hatékonyabbá tenni a szkriptet? Valójában igen.

gci Alias for Get-ChildItem:

A get-childitem cmdletnek van egy gci nevű aliasa. Ez csökkenti a teljes szkript megírásának erőfeszítéseit. Az alábbi szkript kiadja a nekünk szükséges kimenetet.

gci -file

gci -file

dir alias for Get-ChildItem:

A get-childitemnek is van egy meglehetősen népszerű aliasa. A dir-rel helyettesítve ugyanezt az eredményt kaphatjuk.

dir -file

A fenti szkript a következő kimenetet fogja produkálni.

dir file

PowerShell csak könyvtárak listázása:

Megtanultuk, hogyan lehet csak egy adott könyvtárban lévő fájlokat listázni. Most megnézzük, hogyan lehet egy könyvtárból csak a könyvtárakat listázni. Ezt a -file kapcsoló helyett a -directory kapcsoló segítségével tehetjük meg.

gci -directory

gci -directory

PowerShell list only directories rövidebb script:

A scriptet a -di kapcsoló segítségével tudjuk egyszerűsíteni. Ez rendelkezésre áll, mivel elég a -directory kapcsolót félreérthetetlenül azonosítani. A következő szkript segítségével csak a könyvtárban lévő könyvtárakat listázhatjuk ki:

gci -di

Ez a következő kimenetet adja a felhasználóknak.

gci -di

PowerShell csak az összes mappában vagy könyvtárban lévő fájlok listázása:

Most, hogy láttuk, hogyan lehet csak a fájlokat vagy csak a mappákat listázni, még mindig nem tanultuk meg, hogyan lehet csak a könyvtárban lévő fájlokat listázni. Éppen ezt tudjuk megtenni a -recurse kapcsoló segítségével. A szkriptet az alábbiakban adjuk meg.

gci -file -recurse

get files recursively

Kétségtelenül ez egy remek szkript ahhoz, hogy csak a könyvtárban vagy a mappában lévő fájlokat kapjuk meg.

PowerShell csak az összes mappában vagy könyvtárban lévő mappákat listázza ki:

A következő szkript segítségével csak a könyvtárban lévő fájlokat és az azt követő gyermekkönyvtárat is ki tudjuk listázni.

gci -di -recurse

recurse directories

PowerShell listázza a kiterjesztésű fájlokat:

A könyvtárban csak bizonyos típusú fájlokat listázhatunk, ha szeretnénk. A következő szkript segítségével csak a PDF fájlokat listázhatjuk egy könyvtárban.

gci -file *.pdf

csak a pdf-eket

PowerShell listázza rekurzívan egy kiterjesztés fájljait:

Új szintre emelhetjük a fájlok listázását, ha rekurzívan csak egy kiterjesztés fájljait listázzuk. Az alábbi példa éppen ezt mutatja be.

gci -file -r *.pdf

fájl típusa rekurzívan

Megjegyezzük, hogy a -r kapcsolót használjuk a -recurse kapcsoló helyett, mivel ez csökkenti a szükséges gépelés mennyiségét.

A PowerShell egy kiterjesztés fájljait rekurzívan, mélységgel listázza:

A -recurse kapcsolóval egy könyvtár és az azt követő alkönyvtár összes fájlját listázhatjuk. A keresést a fájlkiterjesztés segítségével is szűkíthetjük. De mi van akkor, ha nem akarunk 2 alkönyvtárnál mélyebben lévő mappákban keresni. Használhatjuk a -depth kapcsolót. Az alábbi szkript ezt használja.

gci -file -d 1 -r *.pdf

with depth

A fenti szkript a get-childitem fájltípusú, 1 gyermekkönyvtárig lekérdezi, rekurzívan végzi, és végül biztosítja, hogy csak pdf-eket kérjen le.

Verdict:

Ebben a bejegyzésben a PowerShell List all files in a Directory. Ezt a gci nevű get-childitem alias segítségével tettük. A gci a -file kapcsolóval párosítva azt teszi, amire szükségünk van. Egy bizonyos kiterjesztésű fájlokat is lekérdeztünk. Megszereztük egy bizonyos kiterjesztés fájljait rekurzívan és egy korlátozott mélységig.

Ha még több fantasztikus bejegyzést szeretnél, maradj a TecKangaroo-nál.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.