V prostředí Powershell je výpis všech souborů v adresáři velmi snadný úkol. Pro pouhý výpis všech souborů pouze v adresáři stačí použít následující příkaz:

Tabulka obsahu:

  • PowerShell List files in a Directory.
  • gci alias pro get-chiltitem.
  • dir alias pro get-childitem.
  • PowerShell vypsat pouze adresáře.
  • PowerShell vypsat pouze adresáře pomocí kratšího skriptu.
  • PowerShell vypsat soubory rekurzivně.
  • PowerShell vypsat adresáře rekurzivně.
  • Seznam souborů určitého typu přípony.
  • PowerShell vypisuje soubory určitého typu přípony rekurzivně.
  • Seznam souborů do hloubky v podadresářích.
  • Verdict.

Lidé také hledají:

Pracovní fragment pro Start-Job PowerShell 2020

gci -file

Výše uvedený skript se provede a výstup je zobrazen na obrázku níže.

získat všechny soubory v adresáři

Existuje mnoho jeho variant a v tomto příspěvku jich navštívíme poměrně dost. Uvidíme, jak vzniká alias gci, a také si ukážeme několik různých aliasů také. Existují způsoby, jak získat pouze adresáře v rámci adresářů a také do určité hloubky.

Navštívíme co nejvíce funkcí týkajících se výpisu souborů v adresáři.

PowerShell List Files in a Directory:

Vývojáři prostředí PowerShell neopodstatněně usnadnili práci se soubory a složkami v prostředí PowerShell. Na rozdíl od tradičního skriptování nemusíme v prostředí PowerShell příliš přemýšlet o strukturování skriptu. Je to proto, že prostředí PowerShell je objektově založené na vstupu a výstupu. Pokud někdo umí dobře objektově orientovaný programovací jazyk, skriptování v prostředí PowerShell je pro něj přirozené.

Pro začátek, získání pouze souborů v adresáři, můžeme použít rutinu get-childitem. Do rutiny přidáme přepínač -file, abychom získali pouze soubory v konkrétním adresáři.

get-childitem -file

get child item file

Je jasné, že to náš problém vyřeší. Můžeme však skript zefektivnit? Ve skutečnosti můžeme.

gci Alias pro Get-ChildItem:

Komenda get-childitem má alias nazvaný gci. Snižuje tak náročnost psaní celého skriptu. Níže uvedený skript vytvoří výstup, který potřebujeme.

gci -file

gci -file

dir alias pro Get-ChildItem:

Příkaz get-childitem má také poměrně populární alias. Lze jej nahradit slovem dir a získat stejné výsledky.

dir -file

Výše uvedený skript poskytne následující výstup.

dir file

PowerShell vypisuje pouze adresáře:

Naučili jsme se, jak vypisovat pouze soubory v určitém adresáři. Nyní si ukážeme, jak vypsat pouze adresáře z daného adresáře. To můžeme udělat pomocí přepínače -directory místo přepínače -file.

gci -directory

gci -directory

Skript PowerShell list only directories zkrátíme:

Skript můžeme zjednodušit pomocí přepínače -di. Je k dispozici, protože stačí identifikovat přepínač -directory bez jakýchkoli nejasností. Pro výpis pouze adresářů v adresáři použijte následující skript:

gci -di

Tímto získá uživatel následující výstup.

gci -di

PowerShell vypisuje pouze soubory ve všech složkách nebo adresářích:

Teď, když jsme viděli, jak vypisovat pouze soubory nebo pouze složky, jsme se ještě nenaučili, jak vypisovat pouze soubory v adresáři. Právě to můžeme provést pomocí přepínače -recurse. Skript je uveden níže.

gci -file -recurse

získat soubory rekurzivně

Je zřejmé, že je to skvělý skript, jak se dostat pouze k souborům v adresáři nebo složce.

PowerShell vypisuje pouze složky ve všech adresářích nebo složkách:

Pomocí následujícího skriptu můžeme vypsat pouze soubory v adresáři a také v následném podřízeném adresáři.

gci -di -recurse

rekurzivní adresáře

PowerShell vypisuje soubory s příponou:

Můžeme vypsat pouze určitý typ souborů v adresáři, pokud si to přejeme. Můžeme vypsat pouze soubory PDF v adresáři pomocí následujícího skriptu:

gci -file *.pdf

pouze pdf

PowerShell vypisuje soubory přípony rekurzivně:

Výpis souborů můžeme posunout na novou úroveň tím, že rekurzivně vypisujeme pouze soubory přípony. Právě to demonstruje následující příklad:

gci -file -r *.pdf

typ souboru rekurzivně

Všimněte si, že místo přepínače -recurse používáme přepínač -r, protože se tím snižuje množství psaní, které je třeba provést.

PowerShell vypisuje soubory s příponou rekurzivně s hloubkou:

Přepínačem -recurse můžeme vypsat všechny soubory v adresáři a následném podadresáři. Vyhledávání můžeme také zúžit pomocí přípony souboru. Ale co když nechceme vyhledávat v adresářích, které jsou hlouběji než 2 podadresáře. Můžeme použít přepínač -depth. Toho využívá následující skript.

gci -file -d 1 -r *.pdf

s hloubkou

Výše uvedený skript bude get-childitem typu soubory, bude vyhledávat až do podřízených adresářů 1, Bude to dělat rekurzivně a nakonec zajistí, že bude vyhledávat pouze pdf.

Verdict:

V tomto příspěvku jsme se seznámili se systémem PowerShell Seznam všech souborů v adresáři. Provedli jsme to pomocí aliasu get-childitem s názvem gci. Příkaz gci ve spojení s přepínačem -file udělá to, co potřebujeme. Získali jsme také soubory s určitou příponou také. Soubory určité přípony jsme získali rekurzivně a také do omezené hloubky.

Chcete-li další úžasné příspěvky, sledujte TecKangaroo.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.