Get-ChildItem

Získá položky a podřízené položky v jednom nebo více zadaných umístěních.

Syntax

Get-ChildItem
   [[-Path] <string[]>]
   [[-Filter] <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-FollowSymlink]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]
Get-ChildItem
   [[-Filter] <string>]
   -LiteralPath <string[]>
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-FollowSymlink]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]

Description

Rutina Get-ChildItem získá položky v jednom nebo několika zadaných umístěních. Pokud je položka kontejnerem, získá položky uvnitř kontejneru označované jako podřízené položky. Pomocí parametru Recurse můžete získat položky ve všech podřízených kontejnerech a pomocí parametru Hloubka omezit počet úrovní, které se mají provést.

Get-ChildItem nezobrazuje prázdné adresáře. Get-ChildItem Pokud příkaz obsahuje parametry Hloubka nebo Recurse, nejsou do výstupu zahrnuty prázdné adresáře.

Umístění jsou vystavena Get-ChildItem zprostředkovatelům PowerShellu. Umístění může být adresář systému souborů, podregistr registru nebo úložiště certifikátů. Další informace najdete v tématu about_Providers.

Příklady

Příklad 1: Získání podřízených položek z adresáře systému souborů

Tento příklad získá podřízené položky z adresáře systému souborů. Zobrazí se názvy souborů a podadresářů. V případě prázdných umístění příkaz nevrací žádný výstup a vrátí se do příkazového řádku PowerShellu.

Rutina Get-ChildItem používá parametr Path k určení adresáře C:\Test. Get-ChildItem zobrazí soubory a adresáře v konzole PowerShellu.

Get-ChildItem -Path C:\Test

Directory: C:\Test

Mode                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

Ve výchozím nastavení Get-ChildItem je uveden režim (atributy), LastWriteTime, velikost souboru (délka) a název položky. Písmena ve vlastnosti Mode lze interpretovat takto:

  • l (odkaz)
  • d (adresář)
  • a (archiv)
  • r (jen pro čtení)
  • h (skryté)
  • s (systém).

Další informace o příznakech režimu najdete v tématu about_Filesystem_Provider.

Příklad 2: Získání názvů podřízených položek v adresáři

Tento příklad uvádí pouze názvy položek v adresáři.

Rutina Get-ChildItem používá parametr Path k určení adresáře C:\Test. Parametr Name vrátí pouze názvy souborů nebo adresářů ze zadané cesty. Vrácené názvy jsou relativní k hodnotě parametru Path .

Get-ChildItem -Path C:\Test -Name

Logs
anotherfile.txt
Command.txt
CreateTestFile.ps1
ReadOnlyFile.txt

Příklad 3: Získání podřízených položek v aktuálním adresáři a podadresářích

Tento příklad zobrazí .txt soubory umístěné v aktuálním adresáři a jeho podadresářích.

Get-ChildItem -Path C:\Test\*.txt -Recurse -Force

Directory: C:\Test\Logs\Adirectory

Mode                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\Backup

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 ATextFile.txt
-a----        2/12/2019     15:50             20 LogFile3.txt

    Directory: C:\Test\Logs

Mode                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:\Test

Mode                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

Rutina Get-ChildItem používá k zadání C:\Test\*.txtparametru Path . Cesta používá zástupný znak hvězdičky (*) k určení všech souborů s příponou .txtnázvu souboru . Parametr Recurse prohledá adresář Path jeho podadresáře, jak je znázorněno v adresáři: nadpisy. Parametr Force zobrazí skryté soubory, jako hiddenfile.txt je například režim h.

Příklad 4: Získání podřízených položek pomocí parametru Include

V tomto příkladu Get-ChildItem pomocí parametru Include vyhledá konkrétní položky z adresáře určeného parametrem 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 *.txt



Get-ChildItem -Path C:\Test\* -Include *.txt

Directory: C:\Test

Mode                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

Rutina Get-ChildItem používá parametr Path k určení adresáře C:\Test. Parametr Path obsahuje zástupný znak hvězdičky (*) pro zadání obsahu adresáře. Parametr Include používá zástupný znak hvězdičky (*) k určení všech souborů s příponou názvu souboru .txt.

Při použití parametru Include potřebuje parametr Path k určení obsahu adresáře zástupný znak hvězdičky (*). Například, -Path C:\Test\*.

  • Pokud je do příkazu přidán parametr Recurse , je koncová hvězdička (*) v parametru Path nepovinná. Parametr Recurse získává položky z adresáře Path a jeho podadresářů. Například -Path C:\Test\ -Recurse -Include *.txt.
  • Pokud v parametru Path není uvedená koncová hvězdička (*) , příkaz nevrací žádný výstup a vrátí se do příkazového řádku PowerShellu. Například, -Path C:\Test\.

Příklad 5: Získání podřízených položek pomocí parametru Exclude

Výstup příkladu ukazuje obsah adresáře C:\Test\Logs. Výstup je odkaz na ostatní příkazy, které používají parametry Exclude a Recurse .

Get-ChildItem -Path C:\Test\Logs

Directory: C:\Test\Logs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/15/2019     13:21                Adirectory
d-----        2/15/2019     08:28                AnEmptyDirectory
d-----        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.log

Get-ChildItem -Path C:\Test\Logs\* -Exclude A*

Directory: C:\Test\Logs

Mode                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

Rutina Get-ChildItem používá parametr Path k určení adresáře C:\Test\Logs. Parametr Exclude používá zástupný znak hvězdičky (*) k určení všech souborů nebo adresářů, které začínají znakem A nebo a , jsou z výstupu vyloučeny.

Při použití parametru Exclude je volitelný koncový hvězdička (*) v parametru Path . Příkladem je -Path C:\Test\Logs nebo -Path C:\Test\Logs\*.

  • Pokud není v parametru Path zahrnuta koncová hvězdička (*) , zobrazí se obsah parametru Path. Výjimky jsou názvy souborů nebo podadresáře, které odpovídají hodnotě parametru Exclude .
  • Pokud je v parametru Path zahrnuta koncová hvězdička (*), příkaz se znovu zobrazí do podadresářů parametru Path. Výjimky jsou názvy souborů nebo podadresáře, které odpovídají hodnotě parametru Exclude .
  • Pokud je do příkazu přidán parametr Recurse , rekurzní výstup je stejný, jestli parametr Path obsahuje koncovou hvězdičku (*).

Příklad 6: Získání klíčů registru z podregistru registru

Tento příklad získá všechny klíče registru z HKEY_LOCAL_MACHINE\HARDWARE.

Get-ChildItem používá parametr Path k určení klíče HKLM:\HARDWAREregistru . Cesta hivu a nejvyšší úroveň klíčů registru se zobrazují v konzole PowerShellu.

Další informace najdete v tématu about_Registry_Provider.

Get-ChildItem -Path HKLM:\HARDWARE

Hive: HKEY_LOCAL_MACHINE\HARDWARE

Name             Property
----             --------
ACPI
DESCRIPTION
DEVICEMAP
RESOURCEMAP
UEFI

Get-ChildItem -Path HKLM:\HARDWARE -Exclude D*

Hive: HKEY_LOCAL_MACHINE\HARDWARE

Name                           Property
----                           --------
ACPI
RESOURCEMAP

První příkaz zobrazí obsah HKLM:\HARDWARE klíče registru. Parametr Exclude říká Get-ChildItem , že nevrací žádné podklíče, které začínají D*. Parametr Exclude v současné době funguje pouze u podklíčů, nikoli vlastností položky.

Příklad 7: Získání všech certifikátů s podpisovou autoritou kódu

Tento příklad získá každý certifikát v certifikátu PowerShellu : jednotka, která má podpisovou autoritu kódu.

Rutina Get-ChildItem používá k určení zprostředkovatele Cert: parametr Path. Parametr Recurse prohledá adresář určený path a jeho podadresáře. Parametr CodeSigningCert získá pouze certifikáty, které mají podpisovou autoritu.

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

Další informace o poskytovateli certifikátu a jednotce Cert: najdete v tématu about_Certificate_Provider.

Příklad 8: Získání položek pomocí parametru Hloubka

Tento příklad zobrazuje položky v adresáři a jeho podadresářích. Parametr Hloubka určuje počet úrovní podadresáře, které se mají zahrnout do rekurze. Prázdné adresáře jsou z výstupu vyloučené.

Get-ChildItem -Path C:\Parent -Depth 2

Directory: C:\Parent

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019     10:24                SubDir_Level1
-a----        2/13/2019     08:55             26 file.txt

    Directory: C:\Parent\SubDir_Level1

Mode                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_Level2

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019     10:22                SubDir_Level3
-a----        2/13/2019     08:55             26 file.txt

Rutina Get-ChildItem používá parametr Path k určení C:\Parent. Parametr Hloubka určuje dvě úrovně rekurze. Get-ChildItem zobrazí obsah adresáře určeného parametrem Path a dvěma úrovněmi podadresářů.

Příklad 9: Získání informací o pevném odkazu

V PowerShellu 6.2 se přidalo alternativní zobrazení pro získání informací o pevném odkazu.

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

Příklad 10: Výstup pro operační systémy jiné než Windows

V PowerShellu 7.1 v systémech Get-ChildItem Unix poskytuje výstup podobný systému Unix:

PS> Get-ChildItem /etc/r*

Directory: /etc

UnixMode   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.netboot
lrwxr-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

Nové vlastnosti, které jsou nyní součástí výstupu, jsou:

  • UnixMode je oprávnění k souborům reprezentovaná v systému Unix.
  • Uživatel je vlastníkem souboru.
  • Skupina je vlastníkem skupiny.
  • Velikost je velikost souboru nebo adresáře reprezentované v systému Unix.

Poznámka

Tato funkce byla přesunuta z experimentálního do hlavního proudu v PowerShellu 7.1.

Příklad 11 – Získání cíle propojení pro spojovací bod

Příkaz dir v příkazovém prostředí Windows zobrazuje cílové umístění spojovacího bodu systému souborů. V PowerShellu jsou tyto informace k dispozici z Vlastnosti LinkTarget objektu systému souborů vráceného Get-ChildItem a zobrazí se ve výchozím výstupu.

PS D:\> New-Item -ItemType Junction -Name tmp -Target $env:TEMP
PS D:\> Get-ChildItem | select name,LinkTarget

Name     LinkTarget
----     ----------
tmp      C:\Users\user1\AppData\Local\Temp

PS D:\> Get-ChildItem

    Directory: D:\

Mode          LastWriteTime    Length Name
----          -------------    ------ ----
l----   12/16/2021  9:29 AM           tmp -> C:\Users\user1\AppData\Local\Temp

Parametry

-Attributes

Získá soubory a složky se zadanými atributy. Tento parametr podporuje všechny atributy a umožňuje zadat složité kombinace atributů.

Pokud chcete například získat nesystémové soubory (ne adresáře), které jsou šifrované nebo komprimované, zadejte:

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

K vyhledání souborů a složek s běžně používanými atributy použijte parametr Attributes . Nebo parametry Directory, File, Hidden, ReadOnly a System.

Parametr Attributes podporuje následující vlastnosti:

  • Archiv
  • Komprimované
  • Zařízení
  • Adresář
  • Šifrované
  • Skrytý
  • IntegrityStream
  • Normální
  • NoScrubData
  • NotContentIndexed
  • Offline
  • Readonly
  • ReparsePoint
  • Řídký soubor
  • Systém
  • Dočasné

Popis těchto atributů najdete v souboru FileAttributes – výčet.

Ke kombinování atributů použijte následující operátory:

  • ! (NE)
  • + (AND)
  • , (NEBO)

Nepoužívejte mezery mezi operátorem a jeho atributem. Mezery se přijímají za čárkami.

Pro běžné atributy použijte následující zkratky:

  • D (Adresář)
  • H (Skryté)
  • R (Jen pro čtení)
  • S (Systém)
Type:FlagsExpression<T>[FileAttributes]
Accepted values:Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Depth

Tento parametr byl přidán v PowerShellu 5.0 a umožňuje řídit hloubku rekurze. Ve výchozím nastavení Get-ChildItem se zobrazí obsah nadřazeného adresáře. Parametr Hloubka určuje počet úrovní podadresáře, které jsou součástí rekurze, a zobrazí obsah.

Zahrnuje například Depth 2 adresář parametru Path , první úroveň podadresářů a druhou úroveň podadresářů. Ve výstupu jsou ve výchozím nastavení zahrnuté názvy adresářů a názvy souborů.

Poznámka

Na počítači s Windows z PowerShellu nebo cmd.exemůžete zobrazit grafické zobrazení adresářové struktury pomocí příkazu tree.com .

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

-Directory

Seznam adresářů získáte pomocí parametru Directory nebo atributu s vlastností Directory . Parametr Recurse můžete použít s adresářem.

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

-Exclude

Určuje pole jednoho nebo více vzorů řetězců, které se mají shodovat s tím, jak rutina získá podřízené položky. Všechny odpovídající položky jsou vyloučeny z výstupu. Zadejte prvek cesty nebo vzor, například *.txt nebo A*. Akceptují se zástupné znaky.

Koncová hvězdička (*) v parametru Path je nepovinná. Příkladem je -Path C:\Test\Logs nebo -Path C:\Test\Logs\*. Pokud je zahrnuta koncová hvězdička (*), příkaz se znovu zobrazí do podadresářů parametru Path . Bez hvězdičky (*) se zobrazí obsah parametru Path . Další podrobnosti najdete v příkladu 5 a v části Poznámky.

Parametry Include a Exclude lze použít společně. Vyloučení se však použijí po zahrnutích, což může mít vliv na konečný výstup.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-File

Seznam souborů získáte pomocí parametru File . Parametr Recurse můžete použít se souborem.

Type:SwitchParameter
Aliases:af
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Filter

Určuje filtr, který má kvalifikovat parametr Path . Zprostředkovatel FileSystem je jediný nainstalovaný zprostředkovatel PowerShellu, který podporuje filtry. Filtry jsou efektivnější než jiné parametry. Zprostředkovatel použije filtr, když rutina získá objekty místo toho, aby powershellové objekty po načtení vyfiltrovaly. Řetězec filtru se předá rozhraní .NET API k vytvoření výčtu souborů. Rozhraní API podporuje * pouze zástupné dokumentace.?

Type:String
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-FollowSymlink

Ve výchozím nastavení rutina Get-ChildItem zobrazuje symbolické odkazy na adresáře nalezené během rekurze, ale nenabízejí se do nich. Pomocí parametru FollowSymlink vyhledejte adresáře, které cílí na tyto symbolické odkazy. FollowSymlink je dynamický parametr a podporuje se pouze v poskytovateli FileSystem.

Tento parametr byl zaveden v PowerShellu 6.0.

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

-Force

Umožňuje rutině získat položky, ke kterým jinak uživatel nemá přístup, například skryté nebo systémové soubory. Parametr Force nepřepíše omezení zabezpečení. Implementace se liší mezi poskytovateli. Další informace najdete v tématu about_Providers.

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

-Hidden

Chcete-li získat pouze skryté položky, použijte skrytý parametr nebo atribut parametr s Hidden vlastnost. Ve výchozím nastavení Get-ChildItem se nezobrazují skryté položky. Pomocí parametru Force získejte skryté položky.

Type:SwitchParameter
Aliases:ah, h
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Include

Určuje pole jednoho nebo více vzorů řetězců, které se mají shodovat s tím, jak rutina získá podřízené položky. Každá odpovídající položka je zahrnuta ve výstupu. Zadejte prvek cesty nebo vzor, například "*.txt". Jsou povoleny zástupné znaky. Parametr Include je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*, kde zástupný znak určuje obsah C:\Windows adresáře.

Parametry Include a Exclude lze použít společně. Vyloučení se však použijí po zahrnutích, což může mít vliv na konečný výstup.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Určuje cestu k jednomu nebo více umístěním. Hodnota LiteralPath se používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, že nebudou interpretovat žádné znaky jako řídicí sekvence.

Další informace najdete v tématu about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Name

Získá pouze názvy položek v umístění. Výstup je řetězcový objekt, který lze odeslat do kanálu do jiných příkazů. Vrácené názvy jsou relativní k hodnotě parametru Path .

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

-Path

Určuje cestu k jednomu nebo více umístěním. Zástupné cardy jsou přijaty. Výchozí umístění je aktuální adresář (.).

Type:String[]
Position:0
Default value:Current directory
Accept pipeline input:True
Accept wildcard characters:True

-ReadOnly

Chcete-li získat pouze položky jen pro čtení, použijte parametr ReadOnly nebo Atributs parametr ReadOnly vlastnost.

Type:SwitchParameter
Aliases:ar
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Recurse

Získá položky v zadaných umístěních a ve všech podřízených položkách umístění.

Type:SwitchParameter
Aliases:s
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-System

Získá pouze systémové soubory a adresáře. Chcete-li získat pouze systémové soubory a složky, použijte vlastnost System parametr nebo Attributes Parametr System .

Type:SwitchParameter
Aliases:as
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

String

Řetězec, který obsahuje cestu k Get-ChildItem.

Výstupy

Object

Typ objektu, který Get-ChildItem se vrátí, je určen objekty v cestě jednotky zprostředkovatele.

String

Pokud použijete parametr Name , Get-ChildItem vrátí názvy objektů jako řetězce.

Poznámky

PowerShell obsahuje následující aliasy pro Get-ChildItem:

  • Všechny platformy:
    • dir, gci
  • Windows:
    • ls

Get-ChildItem ve výchozím nastavení se nezobrazují skryté položky. Pokud chcete získat skryté položky, použijte parametr Force .

Rutina Get-ChildItem je navržená tak, aby fungovala s daty vystavenými libovolným poskytovatelem. Chcete-li zobrazit seznam poskytovatelů dostupných v relaci, zadejte Get-PSProvider. Další informace najdete v tématu about_Providers.