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:
- Lidé také hledají:
- PowerShell List Files in a Directory:
- gci Alias pro Get-ChildItem:
- dir alias pro Get-ChildItem:
- PowerShell vypisuje pouze adresáře:
- Skript PowerShell list only directories zkrátíme:
- PowerShell vypisuje pouze soubory ve všech složkách nebo adresářích:
- PowerShell vypisuje pouze složky ve všech adresářích nebo složkách:
- PowerShell vypisuje soubory s příponou:
- PowerShell vypisuje soubory přípony rekurzivně:
- PowerShell vypisuje soubory s příponou rekurzivně s hloubkou:
- Verdict:
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.
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
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
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.
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
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.
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
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
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
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
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
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.