W Powershell lista wszystkich plików w katalogu jest bardzo proste zadanie. Musimy tylko użyć następującego polecenia, aby po prostu wypisać wszystkie pliki tylko w katalogu.

Spis treści:

  • PowerShell List files in a Directory.
  • gci alias dla get-chiltitem.
  • dir alias dla get-childitem.
  • PowerShell list only directories.
  • PowerShell list only directories using a shorter script.
  • PowerShell list files recursively.
  • PowerShell list directories recursively.
  • List files of a certain extension type.
  • PowerShell listuje pliki o określonym typie rozszerzenia rekurencyjnie.
  • Listuje pliki do głębokości w podkatalogach.
  • Verdict.

People also search for:

Working Snippet for Start-Job PowerShell 2020

gci -file

Powyższy skrypt jest pokazany jest wykonywany, a wyjście jest pokazane na poniższym obrazku.

zbierz wszystkie pliki w katalogu

Istnieje wiele odmian tego i odwiedzimy sporo z nich w tym poście. Zobaczymy, jak gci alias pochodzi i będziemy również zobaczyć kilka różnych aliasów również. Istnieją sposoby, aby uzyskać tylko katalogi w obrębie katalogów, a także do pewnej głębokości.

Odwiedzimy tak wiele funkcji, jak tylko możemy na temat listowania plików w katalogu.

PowerShell List Files in a Directory:

Deweloperzy PowerShell sprawili, że radzenie sobie z plikami i folderami w PowerShell jest niezwykle proste. W przeciwieństwie do tradycyjnego skryptowania, w PowerShell nie musimy się zbytnio zastanawiać nad strukturą skryptu. Dzieje się tak dlatego, że PowerShell jest oparty na obiektowym wejściu i wyjściu. Jeśli ktoś jest dobry w obiektowym języku programowania, pisanie skryptów w PowerShell przychodzi mu naturalnie.

Na początek, aby uzyskać tylko pliki w katalogu, możemy użyć cmdleta get-childitem. Do cmdleta dodamy przełącznik -file, aby pobrać tylko pliki w określonym katalogu.

get-childitem -file

get child item file

Wyraźnie rozwiązuje to nasz problem. Ale czy możemy uczynić ten skrypt bardziej wydajnym? W rzeczywistości możemy.

gci Alias for Get-ChildItem:

Ccmdlet get-childitem posiada alias o nazwie gci. Zmniejsza to wysiłek pisania całego skryptu. Poniższy skrypt wygeneruje dane wyjściowe, których potrzebujemy.

gci -file

gci -file

dir alias dla Get-ChildItem:

Ccmdlet get-childitem ma również dość popularny alias. Można go zastąpić przez dir, aby uzyskać te same wyniki.

dir -file

Powyższy skrypt wygeneruje następujące dane wyjściowe.

dir file

PowerShell list only directories:

Poznaliśmy sposób na wylistowanie tylko plików w określonym katalogu. Teraz zobaczymy jak wylistować tylko katalogi z danego katalogu. Możemy to zrobić za pomocą przełącznika -directory zamiast przełącznika -file.

gci -directory

gci -directory

PowerShell list only directories krótszy skrypt:

Skrypt możemy uprościć za pomocą przełącznika -di. Jest on dostępny, ponieważ wystarczy bez żadnych niejasności zidentyfikować przełącznik -directory. Użyj następującego skryptu, aby wyświetlić listę tylko katalogów w katalogu.

gci -di

To da użytkownikowi następujące wyjście.

gci -di

PowerShell listuje tylko pliki we wszystkich folderach lub katalogach:

Teraz, gdy zobaczyliśmy jak listować tylko pliki lub tylko foldery, wciąż nie dowiedzieliśmy się jak listować tylko pliki w katalogu. Możemy to zrobić za pomocą przełącznika -recurse. Skrypt jest podany poniżej.

gci -file -recurse

get files recursively

Jasno widać, że jest to świetny skrypt, aby dostać się tylko do plików w katalogu lub folderze.

PowerShell list only folders in all the folders or directories:

Możemy wypisać tylko pliki w katalogu, a także w kolejnych katalogach podrzędnych używając poniższego skryptu.

gci -di -recurse

recursive directories

PowerShell listuje pliki o rozszerzeniu:

Możemy wypisać tylko określony typ plików w katalogu, jeśli chcemy. Możemy wylistować tylko pliki PDF w katalogu używając poniższego skryptu.

gci -file *.pdf

only the pdfs

PowerShell listuje pliki o rozszerzeniu rekurencyjnie:

Możemy przenieść listowanie plików na nowy poziom poprzez rekurencyjne listowanie tylko plików o danym rozszerzeniu. Poniższy przykład właśnie to demonstruje.

gci -file -r *.pdf

typ pliku rekurencyjnie

Zauważ, że używamy przełącznika -r zamiast przełącznika -recurse, ponieważ zmniejsza to ilość wpisywania, które trzeba wykonać.

PowerShell listuje pliki o rozszerzeniu rekurencyjnie z głębokością:

Możemy wypisać wszystkie pliki w katalogu i kolejnych podkatalogach używając przełącznika -recurse. Możemy również zawęzić wyszukiwanie używając rozszerzenia pliku. Ale co jeśli nie chcemy szukać w folderach, które są głębiej niż 2 podkatalogi. Możemy użyć przełącznika -depth. Poniższy skrypt to wykorzystuje.

gci -file -d 1 -r *.pdf

with depth

Powyższy skrypt wykona get-childitem typu files, pobierze do katalogów podrzędnych 1, zrobi to rekurencyjnie i na koniec zapewni, że pobierze tylko pdfy.

Verdict:

W tym poście, dowiedzieliśmy się o PowerShell List all files in a Directory. Zrobiliśmy to używając alias get-childitem o nazwie gci. Gci w połączeniu z przełącznikiem -file robi to, czego potrzebujemy. Pobraliśmy również pliki o określonym rozszerzeniu. Pobraliśmy również pliki o określonym rozszerzeniu rekurencyjnie, a także do ograniczonej głębokości.

Jeśli chcesz więcej niesamowitych postów, bądź na bieżąco z TecKangaroo.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.