Get-ChildItem

Moduł: Microsoft.PowerShell.Management

Uzyskuje elementy i elementy potomne w jednej lub wielu określonych lokalizacjach.

Syntax

Get-ChildItem <string>] <string>] >] >] >] 
Get-ChildItem <string>] -LiteralPath <string> >] >] >] 

Description

Ccmdlet Get-ChildItem uzyskuje elementy w jednej lub wielu określonych lokalizacjach. Jeśli element jest acontainerem, pobiera elementy wewnątrz kontenera, znane jako elementy potomne. Można użyć parametru Recurseparametr, aby uzyskać elementy we wszystkich kontenerach potomnych i użyć parametru Depth, aby ograniczyć liczbę poziomów do rekursji.

Get-ChildItemnie wyświetla pustych katalogów. Gdy polecenie Get-ChildItem zawiera parametryDepth lub Recurse, puste katalogi nie są uwzględniane w danych wyjściowych.

Lokalizacje są wystawiane na działanie Get-ChildItem przez dostawców PowerShell. Lokalizacja może być katalogiem systemu plików, ulami rejestru lub magazynem certyfikatów. Aby uzyskać więcej informacji, zobacz about_Providers.

Przykłady

Przykład 1: Pobierz elementy potomne z katalogu systemu plików

Ten przykład pobiera elementy potomne z katalogu systemu plików. Wyświetlane są nazwy plików i podkatalogów. W przypadku pustych lokalizacji polecenie nie zwraca żadnych danych wyjściowych i powraca do znaku zachęty PowerShell.

Ccmdlet Get-ChildItem używa parametru Path (Ścieżka) do określenia katalogu C:\Test.Get-ChildItem wyświetla pliki i katalogi w konsoli PowerShell.

Get-ChildItem -Path C:\TestDirectory: C:\TestMode LastWriteTime Length Name---- ------------- ------ ----d----- 2/15/2019 08:29 Logs-a---- 2/13/2019 08:55 26 anotherfile.txt-a---- 2/12/2019 15:40 118014 Command.txt-a---- 2/1/2019 08:43 183 CreateTestFile.ps1-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt

Domyślnie Get-ChildItem wymienia tryb (Attributes), czas ostatniego zapisu (LastWriteTime), rozmiar pliku (Length) oraz nazwę elementu. Litery we właściwości Mode można interpretować w następujący sposób:

  • l (łącze)
  • d (katalog)
  • a (archiwum)
  • r (tylko do odczytu)
  • h (ukryty)
  • s (system).

Aby uzyskać więcej informacji na temat flag trybu, zobaczabout_Filesystem_Provider.

Przykład 2: Uzyskaj nazwy elementów dziecięcych w katalogu

W tym przykładzie wymieniono tylko nazwy elementów w katalogu.

Ccmdlet Get-ChildItem używa parametru Path do określenia katalogu C:\Test. ParametrName zwraca tylko nazwy plików lub katalogów z podanej ścieżki.

Get-ChildItem -Path C:\Test -NameLogsanotherfile.txtCommand.txtCreateTestFile.ps1ReadOnlyFile.txt

Przykład 3: Pobierz elementy dziecięce w bieżącym katalogu i podkatalogach

W tym przykładzie wyświetlane są pliki .txt znajdujące się w bieżącym katalogu i jego podkatalogach.

Get-ChildItem -Path C:\Test\*.txt -Recurse -ForceDirectory: C:\Test\Logs\AdirectoryMode LastWriteTime Length Name---- ------------- ------ -----a---- 2/12/2019 16:16 20 Afile4.txt-a-h-- 2/12/2019 15:52 22 hiddenfile.txt-a---- 2/13/2019 13:26 20 LogFile4.txt Directory: C:\Test\Logs\BackupMode LastWriteTime Length Name---- ------------- ------ -----a---- 2/12/2019 16:16 20 ATextFile.txt-a---- 2/12/2019 15:50 20 LogFile3.txt Directory: C:\Test\LogsMode LastWriteTime Length Name---- ------------- ------ -----a---- 2/12/2019 16:16 20 Afile.txt-a-h-- 2/12/2019 15:52 22 hiddenfile.txt-a---- 2/13/2019 13:26 20 LogFile1.txt Directory: C:\TestMode LastWriteTime Length Name---- ------------- ------ -----a---- 2/13/2019 08:55 26 anotherfile.txt-a---- 2/12/2019 15:40 118014 Command.txt-a-h-- 2/12/2019 15:52 22 hiddenfile.txt-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt

Ccmdlet Get-ChildItem używa parametru Path do określenia katalogu C:\Test\*.txt. Parametr Path używa symbolu wieloznacznegoasterisk (*) do określenia wszystkich plików z rozszerzeniem nazwy pliku .txt. Parametr Recurseparametr przeszukuje katalog Path i jego podkatalogi, jak pokazano w nagłówkach Directory:headings. Parametr Force wyświetla pliki ukryte, takie jak hiddenfile.txt, które mają modeof h.

Przykład 4: Uzyskiwanie elementów potomnych przy użyciu parametru Include

W tym przykładzie Get-ChildItem używa parametru Include do znalezienia określonych elementów z katalogu określonego przez parametr Path.

# When using the -Include parameter, if you don't include an asterisk in the path# the command returns no output.Get-ChildItem -Path C:\Test\ -Include *.txtGet-ChildItem -Path C:\Test\* -Include *.txtDirectory: C:\TestMode LastWriteTime Length Name---- ------------- ------ -----a---- 2/13/2019 08:55 26 anotherfile.txt-a---- 2/12/2019 15:40 118014 Command.txt-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt

Ccmdlet Get-ChildItem używa parametru Path do określenia katalogu C:Test. ParametrPath zawiera symbol wieloznaczny gwiazdki (*), aby określić zawartość katalogu.Parametr Include używa symbolu wieloznacznego gwiazdki (*), aby określić wszystkie pliki z rozszerzeniem nazwy pliku .txt.

Gdy używany jest parametr Include, parametr Path wymaga symbolu wieloznacznego gwiazdki (*), aby określić zawartość katalogu. Na przykład -Path C:\Test\*.

  • Jeśli do polecenia dodano parametr Recurse, kończący znak gwiazdki (*) w parametrze Path jest opcjonalny. Parametr Recurse pobiera elementy z katalogu Path i jego podkatalogów. Na przykład -Path C:\Test\ -Recurse -Include *.txt
  • Jeśli w parametrze Ścieżka nie zostanie umieszczona gwiazdka (*), polecenie nie zwraca żadnych danych wyjściowych i powraca do znaku zachęty PowerShell. Na przykład -Path C:\Test\.

Przykład 5: Uzyskaj elementy potomne przy użyciu parametru Exclude

Wyniki przykładu przedstawiają zawartość katalogu C:™TestLogs. Dane wyjściowe stanowią odniesienie dla innych poleceń korzystających z parametrów Exclude i Recurse.

Get-ChildItem -Path C:\Test\LogsDirectory: C:\Test\LogsMode LastWriteTime Length Name---- ------------- ------ ----d----- 2/15/2019 13:21 Adirectoryd----- 2/15/2019 08:28 AnEmptyDirectoryd----- 2/15/2019 13:21 Backup-a---- 2/12/2019 16:16 20 Afile.txt-a---- 2/13/2019 13:26 20 LogFile1.txt-a---- 2/12/2019 16:24 23 systemlog1.logGet-ChildItem -Path C:\Test\Logs\* -Exclude A*Directory: C:\Test\LogsMode LastWriteTime Length Name---- ------------- ------ ----d----- 2/15/2019 13:21 Backup-a---- 2/13/2019 13:26 20 LogFile1.txt-a---- 2/12/2019 16:24 23 systemlog1.log

Urządzenie Get-ChildItem używa parametru Path do określenia katalogu C:\Test\Logs.Parametr Exclude używa symbolu wieloznacznego gwiazdki (*) do określenia dowolnych plików lub katalogów rozpoczynających się od liter A lub a, które zostaną wykluczone z danych wyjściowych.

Gdy używany jest parametr Exclude, końcowa gwiazdka (*) w parametrze Path jest opcjonalna. Na przykład -Path C:\Test\Logs lub -Path C:\Test\Logs\*.

  • Jeśli w parametrze Ścieżka nie zostanie umieszczona kończąca gwiazdka (*), wyświetlana jest zawartość parametru Ścieżka. Wyjątkiem są nazwy plików lub podkatalogów pasujące do wartości parametruExclude.
  • Jeśli w parametrze Path znajduje się kończąca gwiazdka (*), polecenie przeszukuje podkatalogi parametruPath. Wyjątkiem są nazwy plików lub podkatalogów pasujące do wartości parametru Exclude.
  • Jeśli do polecenia zostanie dodany parametr Recurse, wynik rekurencji jest taki sam bez względu na to, czy parametr Path zawiera kończącą się gwiazdkę (*).

Przykład 6: Pobierz klucze rejestru z ula rejestru

Ten przykład pobiera wszystkie klucze rejestru z HKEY_LOCAL_MACHINE\HARDWARE.

Get-ChildItem używa parametru Path do określenia klucza rejestru HKLM:\HARDWARE. Ścieżka Thehive i najwyższy poziom kluczy rejestru są wyświetlane w konsoli PowerShell.

Więcej informacji można znaleźć w części about_Registry_Provider.

Get-ChildItem -Path HKLM:\HARDWAREHive: HKEY_LOCAL_MACHINE\HARDWAREName Property---- --------ACPIDESCRIPTIONDEVICEMAPRESOURCEMAPUEFIGet-ChildItem -Path HKLM:\HARDWARE -Exclude D*Hive: HKEY_LOCAL_MACHINE\HARDWAREName Property---- --------ACPIRESOURCEMAP

Pierwsze polecenie pokazuje zawartość klucza rejestru HKLM:\HARDWARE. Parametr Exclude mówi Get-ChildItem, aby nie zwracać żadnych podkluczy, które zaczynają się od D*. Obecnie parametr Excludeparameter działa tylko na podklucze, a nie na właściwości elementów.

Przykład 7: Pobierz wszystkie certyfikaty z upoważnieniem do podpisywania kodu

Ten przykład pobiera każdy certyfikat z dysku PowerShell Cert:, który ma upoważnienie do podpisywania kodu.

Ccmdlet Get-ChildItem używa parametru Path do określenia dostawcy Cert:. ParametrRecurse przeszukuje katalog określony przez parametr Path i jego podkatalogi. ParametrCodeSigningCert pobiera tylko certyfikaty, które mają uprawnienia do podpisywania kodu.

Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert

Więcej informacji na temat dostawcy certyfikatów i dysku Cert: znajduje się w części about_Certificate_Provider.

Przykład 8: Pobierz elementy przy użyciu parametru Depth

Ten przykład wyświetla elementy w katalogu i jego podkatalogach. Parametr Głębokość określa liczbę poziomów podkatalogów, które mają być uwzględnione w rekurencji. Puste katalogi są wykluczane z danych wyjściowych.

Get-ChildItem -Path C:\Parent -Depth 2Directory: C:\ParentMode LastWriteTime Length Name---- ------------- ------ ----d----- 2/14/2019 10:24 SubDir_Level1-a---- 2/13/2019 08:55 26 file.txt Directory: C:\Parent\SubDir_Level1Mode LastWriteTime Length Name---- ------------- ------ ----d----- 2/14/2019 10:24 SubDir_Level2-a---- 2/13/2019 08:55 26 file.txt Directory: C:\Parent\SubDir_Level1\SubDir_Level2Mode LastWriteTime Length Name---- ------------- ------ ----d----- 2/14/2019 10:22 SubDir_Level3-a---- 2/13/2019 08:55 26 file.txt

Urządzenie Get-ChildItem używa parametru Path do określenia katalogu C:\Parent. Parametr Głębokość określa dwa poziomy rekursji. Get-ChildItem wyświetla zawartość katalogu określonego przez parametr Path oraz dwa poziomy podkatalogów.

Przykład 9: Uzyskiwanie informacji o łączach twardych

W PowerShell 6.2 dodano alternatywny widok umożliwiający uzyskiwanie informacji o łączach twardych.

Get-ChildItem -Path C:\PathContainingHardLink | Format-Table -View childrenWithHardLink

Przykład 10: Dane wyjściowe dla systemów operacyjnych innych niż Windows

W PowerShell 7.1 na systemach Unix, Get-ChildItem zapewnia uniksopodobne dane wyjściowe:

PS> Get-ChildItem /etc/r*Directory: /etcUnixMode User Group LastWriteTime Size Name-------- ---- ----- ------------- ---- ----drwxr-xr-x root wheel 9/30/2019 19:19 128 racoon-rw-r--r-- root wheel 9/26/2019 18:20 1560 rc.common-rw-r--r-- root wheel 7/31/2017 17:30 1560 rc.common~previous-rw-r--r-- root wheel 9/27/2019 20:34 5264 rc.netbootlrwxr-xr-x root wheel 11/8/2019 15:35 22 resolv.conf -> /private/var/run/resolv.conf-rw-r--r-- root wheel 10/23/2019 17:41 0 rmtab-rw-r--r-- root wheel 10/23/2019 17:41 1735 rpc-rw-r--r-- root wheel 7/25/2017 18:37 1735 rpc~previous-rw-r--r-- root wheel 10/23/2019 18:42 891 rtadvd.conf-rw-r--r-- root wheel 8/24/2017 21:54 891 rtadvd.conf~previous

Nowe właściwości, które są teraz częścią danych wyjściowych, to:

  • UnixMode to uprawnienia do pliku reprezentowane w systemie uniksowym
  • User to właściciel pliku
  • Group to właściciel grupy
  • Size to rozmiar pliku lub katalogu reprezentowany w systemie uniksowym

Uwaga

Ta właściwość została przeniesiona z eksperymentalnej do głównego nurtu w PowerShell 7.1.

Parameters

-Attributes

Gets files and folders with the specified attributes. Ten parametr obsługuje wszystkie atrybuty i umożliwia określenie złożonych kombinacji atrybutów.

Na przykład, aby uzyskać pliki niesystemowe (nie katalogi), które są zaszyfrowane lub skompresowane, wpisz:

Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed

Aby znaleźć pliki i foldery z powszechnie używanymi atrybutami, użyj parametru Atrybuty. Lub parametrów Katalog, Plik, Ukryty, Tylko do odczytu i System.

Parametr Attributes obsługuje następujące właściwości:

  • Archive
  • Compressed
  • Device
  • Directory
  • Encrypted
  • Hidden
  • IntegrityStream
  • Normal
  • NoScrubData
  • .

  • NotContentIndexed
  • Offline
  • ReadOnly
  • ReparsePoint
  • SparseFile
  • System
  • Temporary

Opis tych atrybutów, zobacz wyliczenie FileAttributes.

Aby połączyć atrybuty, użyj następujących operatorów:

  • ! (NOT)
  • + (AND)
  • , (OR)

Nie używaj spacji między operatorem a jego atrybutem. Spacje są akceptowane po przecinkach.

W przypadku atrybutów wspólnych należy używać następujących skrótów:

  • D (Directory)
  • H (Hidden)
  • R (Read-only)
  • S (System)
Typ: FlagsExpression<T>
Akceptowane wartości: Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary
Position: Named
Domyślna wartość: None
Accept pipeline input: False
Accept wildcard characters: False
-Depth

Ten parametr został dodany w PowerShell 5.0 i umożliwia kontrolowanie głębokości rekurencji. Domyślnie Get-ChildItem wyświetla zawartość katalogu nadrzędnego. Parametr Depth określa liczbę poziomów podkatalogów, które są uwzględniane w rekursji, i wyświetla ich zawartość.

Na przykład Depth 2 obejmuje katalog parametru Path, pierwszy poziom podkatalogów i drugi poziom podkatalogów. Domyślnie nazwy katalogów i plików są uwzględniane w danych wyjściowych.

Uwaga

Na komputerze z systemem Windows z programu PowerShell lub cmd.exe można wyświetlić graficzny widok struktury katalogów za pomocą polecenia tree.com.

Type: UInt32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Directory

Aby uzyskać listę katalogów, użyj parametru Directory lub parametru Attributes z właściwością Directory. Możesz użyć parametru Recurse z właściwością Directory.

Type: SwitchParameter
Aliases: ad, d
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Exclude

Określa, jako tablicę łańcuchów, właściwość lub właściwość, którą ten cmdlet wyklucza z operacji.Wartość tego parametru kwalifikuje parametr Ścieżka. Wprowadź element ścieżki lub wzorzec, taki jak *.txt lub A*. Akceptowane są znaki wieloznaczne.

Opcjonalna jest końcowa gwiazdka (*) w parametrze Ścieżka. Na przykład -Path C:\Test\Logs lub -Path C:\Test\Logs\*. Jeśli dołączona jest gwiazdka (*), polecenie przeszukuje podkatalogi parametru Ścieżka. Bez gwiazdki (*) wyświetlana jest zawartość parametru Path. Więcej szczegółów znajduje się w przykładzie 5 i w sekcji Uwagi.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: True
-File

Aby uzyskać listę plików, użyj parametru File. Możesz użyć parametru Recurse z parametremFile.

Type: SwitchParameter
Aliases: af
Position: Named
Wartość domyślna: None
Accept pipeline input: False
Accept wildcard characters: False
-Filter

Określa filtr kwalifikujący parametr Path. Dostawca FileSystemprovider jest jedynym zainstalowanym dostawcą PowerShell, który obsługuje filtry. Filtry są bardziej efektywne niż inne parametry. Dostawca stosuje filtr, gdy cmdlet pobiera obiekty, zamiast zmuszać PowerShell do filtrowania obiektów po ich pobraniu. Łańcuch filtru jest przekazywany do API.NET, aby wyliczyć pliki. API obsługuje tylko znaki wieloznaczne * i ?.

Type: String
Position: 1
Wartość domyślna: None
Accept pipeline input: False
Accept wildcard characters: True
-FollowSymlink

Domyślnie cmdlet Get-ChildItem wyświetla dowiązania symboliczne do katalogów znalezionych podczas rekursji, ale nie rekursywuje do nich. Użyj parametru FollowSymlink, aby przeszukać katalogi, do których kierują te dowiązania symboliczne. Parametr FollowSymlink jest parametrem dynamicznym i jest obsługiwany tylko w providerze FileSystem.

Ten parametr został wprowadzony w PowerShell 6.0.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Force

Umożliwia cmdletowi uzyskanie elementów, do których w przeciwnym razie użytkownik nie miałby dostępu, takich jak pliki ukryte lub systemowe. Parametr Force nie unieważnia ograniczeń bezpieczeństwa. Implementacja różni się w zależności od dostawcy. Aby uzyskać więcej informacji, zobacz about_Providers.

Typ: SwitchParameter
Pozycja: Named
Wartość domyślna: False
Accept pipeline input: False
Accept wildcard characters: False

-Hidden

Aby uzyskać tylko ukryte elementy, użyj parametru Hidden lub parametru Attributes z właściwościąHidden. Domyślnie, Get-ChildItem nie wyświetla ukrytych elementów. Użyj parametru Forceparameter, aby uzyskać ukryte elementy.

Typ: SwitchParameter
Aliases: ah, h
Pozycja: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Include

Określa, jako tablicę łańcuchów, element lub elementy, które ten cmdlet uwzględnia w operacji. Wartość tego parametru kwalifikuje parametr Path. Wprowadź element ścieżki lub wzór, taki jak"*.txt". Dozwolone są znaki wieloznaczne. Parametr Include jest skuteczny tylko wtedy, gdy polecenie obejmuje zawartość elementu, takiego jak C:\Windows\*, gdzie znak wieloznaczny określa zawartość katalogu C:\Windows.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: True
-LiteralPath

Określa ścieżkę do jednej lub więcej lokalizacji. Wartość LiteralPath jest używana dokładnie w takiej postaci, w jakiej została wpisana. Żadne znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedynczy cudzysłów mówi PowerShellowi, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.

Type: String
Aliases: PSPath, LP
Position: Named
Wartość domyślna: None
Accept pipeline input: True
Accept wildcard characters: False
-Name

Zdobywa tylko nazwy elementów w lokalizacji. Wyjściem jest obiekt łańcuchowy, który może być przesłany w dół potoku do innych poleceń. Dozwolone są znaki wieloznaczne.

Typ: SwitchParameter
Pozycja: Nazwa
Wartość domyślna: Nie
Przyjmuje dane wejściowe rurociągu: False
Accept wildcard characters: True
-Path

Określa ścieżkę do jednej lub więcej lokalizacji. Akceptowane są symbole wieloznaczne. Domyślną lokalizacją jest bieżący katalog (.).

Type: String
Position: 0
Default value: Current directory
Accept pipeline input: True
Accept wildcard characters: True
-ReadOnly

Aby uzyskać tylko elementy tylko do odczytu, użyj parametru ReadOnly lub właściwości Attributes parameterReadOnly.

Typ: SwitchParameter
Aliases: ar
Pozycja: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Recurse

Uzyskuje elementy w określonych lokalizacjach i we wszystkich elementach potomnych tych lokalizacji.

Type: SwitchParameter
Aliases: s
Position: Named
Wartość domyślna: False
Accept pipeline input: False
Accept wildcard characters: False
-System

Pobiera tylko pliki i katalogi systemowe. Aby uzyskać tylko pliki systemowe i katalogi, użyj właściwości Systemparameter lub Attributes parameter System.

Typ: SwitchParameter
Aliases: as
Pozycja: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Inputs

String

Możesz potokować ciąg zawierający ścieżkę do Get-ChildItem.

Outputs

Object

Typ obiektu, który zwraca Get-ChildItem, jest określony przez obiekty w ścieżce napędowej dostawcy.

String

Jeśli użyjesz parametru Name, Get-ChildItem zwraca nazwy obiektów jako ciągi znaków.

Notatki

  • Get-ChildItem można uruchomić przy użyciu dowolnego z wbudowanych aliasów, ls, dir i gci. Aby uzyskać więcej informacji, zobacz about_Aliases.
  • Get-ChildItem domyślnie nie pobiera ukrytych elementów. Aby uzyskać ukryte elementy, należy użyć parametru Forceparameter.
  • cmdlet Get-ChildItem został zaprojektowany do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w twojej sesji, wpisz Get-PSProvider.Aby uzyskać więcej informacji, zobacz about_Providers.
  • about_Certificate_Provider
  • about_Providers
  • about_Quoting_Rules
  • about_Registry_Provider
  • ForEach-Object
  • Get-Alias
  • Get-Item
  • Get-Location
  • Get-Process
  • Get-PSProvider
  • Split-Path

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.