Sdílet prostřednictvím


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]
   [-UseTransaction]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]
Get-ChildItem
   [[-Filter] <string>]
   -LiteralPath <string[]>
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-UseTransaction]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]

Description

Rutina Get-ChildItem načte položky v jednom nebo více zadaných umístěních. Pokud je položka kontejner, 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 Depth omezit počet úrovní, které se mají vrátit.

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.

Zprostředkovatelé PowerShellu Get-ChildItem zveřejňují umístění. 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áře. 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 se zobrazí režim (Atributy), LastWriteTime, velikost souboru (délka) a název položky. Písmena ve vlastnosti Mode lze interpertovat následujícím způsobem:

  • 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říkaz vypíše jenom 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.

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, které jsou umístěny 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á parametr Path k zadání C:\Test\*.txt. Cesta používá zástupný znak hvězdičky (*) k určení všech souborů s příponou názvu souboru .txt. Parametr Recurse prohledá adresář Path jeho podadresáře, jak je znázorněno v nadpisech Adresář: . Parametr Force zobrazí skryté soubory, například hiddenfile.txt , které mají režim h.

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

V tomto příkladu Get-ChildItem používá parametr Include k vyhledání konkrétních položek z adresáře určeného parametrem Path .

# When using the -Include parameter, if you do not 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 (*), který určuje obsah 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 , koncová hvězdička (*) v parametru Path je volitelná. Parametr Recurse získává položky z adresáře Path a jeho podadresářů. Například -Path C:\Test\ -Recurse -Include *.txt.
  • Pokud koncová hvězdička (*) není zahrnuta v parametru Path , 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 odkazem na další 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í na A nebo a jsou vyloučeny z výstupu.

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

  • Pokud koncová hvězdička (*) není zahrnuta v parametru Path , zobrazí se obsah parametru Path . Výjimkou 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ýjimkou jsou názvy souborů nebo podadresáře, které odpovídají hodnotě parametru Exclude .
  • Pokud je do příkazu přidán parametr Recurse , je výstup rekurze stejný bez ohledu na to, jestli parametr Path obsahuje koncovou hvězdičku (*).

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

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

Get-ChildItem použije parametr Path k zadání klíče HKLM:\HARDWAREregistru . Cesta hivu a nejvyšší úroveň klíčů registru se zobrazí 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á, že Get-ChildItem nevrací žádné podklíče, které začínají na D*. V současné době funguje parametr Exclude pouze u podklíčů, nikoli u vlastností položky.

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

Tento příkaz získá každý certifikát na jednotce PowerShell Cert: s autoritou pro podepisování kódu.

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

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 Depth

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

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 zadání C:\Parent. Parametr Depth určuje dvě úrovně rekurze. Get-ChildItem zobrazí obsah adresáře určeného parametrem Path a dvě úrovně podadresářů.

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 například chcete 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 Adresář, Soubor, Skryté, Jen pro čtení a Systém.

Parametr Attributes podporuje následující vlastnosti:

  • Archiv
  • Komprimované
  • Zařízení
  • Directory
  • Šifrované
  • Skrytý
  • IntegrityStream
  • Normální
  • NoScrubData
  • NotContentIndexed
  • Offline
  • Readonly
  • ReparsePoint
  • Zhuštěný soubor
  • Systém
  • Dočasné

Popis těchto atributů naleznete 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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Depth

Tento parametr byl přidán do PowerShellu 5.0 a umožňuje řídit hloubku rekurze. Ve výchozím nastavení Get-ChildItem zobrazí obsah nadřazeného adresáře. Parametr Depth 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ýchozím nastavení jsou ve výstupu zahrnuty názvy adresářů a souborů.

Poznámka

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

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

-Directory

Pokud chcete získat seznam adresářů, použijte parametr Directory nebo Attributes s vlastností Directory . Můžete použít parametr Recurse s Directory.

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

-Exclude

Určuje jako pole řetězců vlastnost nebo vlastnost, kterou tato rutina vyloučí z operace. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například *.txt nebo A*. Zástupné znaky jsou přijímány.

Koncová hvězdička (*) v parametru Path je volitelná. 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.

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

-File

Pokud chcete získat seznam souborů, použijte parametr File . U file můžete použít parametr Recurse.

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

-Filter

Určuje filtr pro kvalifikaci parametru Path . Zprostředkovatel fileSystem je jediným nainstalovaným zprostředkovatelem PowerShellu, který podporuje použití filtrů. Filtry jsou efektivnější než jiné parametry, protože je zprostředkovatel použije, když rutina získá objekty, místo aby objekty po načtení vyfiltroval PowerShell. Řetězec filtru se předá rozhraní .NET API pro výčet souborů. Toto rozhraní API podporuje * pouze zástupné é karty a ? .

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

-Force

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

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

-Hidden

Pokud chcete získat jenom skryté položky, použijte parametr Hidden nebo parametr Attributes s vlastností Hidden . Ve výchozím nastavení Get-ChildItem nezobrazuje skryté položky. Pomocí parametru Force získejte skryté položky.

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

-Include

Určuje jako pole řetězců položku nebo položky, které tato rutina zahrnuje do operace. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, například "*.txt". Zástupné znaky jsou povoleny. Parametr Include je účinný 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.

Type:String[]
Position:Named
Default value:None
Required:False
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 nemá interpretovat žádné znaky jako řídicí sekvence.

Další informace najdete v tématu about_Quoting_Rules.

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

-Name

Získá pouze názvy položek v umístění. Výstupem je objekt řetězce, který je možné odeslat do kanálu jiným příkazům. Zástupné cardy jsou povolené.

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

-Path

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

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

-ReadOnly

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

Type:SwitchParameter
Aliases:ar
Position:Named
Default value:None
Required:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-System

Získá pouze systémové soubory a adresáře. Pokud chcete získat pouze systémové soubory a složky, použijte vlastnost System parametru nebo atributuparametru System .

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

-UseTransaction

Zahrnuje příkaz v aktivní transakci. Tento parametr je platný jenom v případě, že probíhá transakce. Další informace najdete v tématu about_Transactions.

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

Vstupy

String

Můžete připojit řetězec, který obsahuje cestu k Get-ChildItem.

Výstupy

Object

Typ objektu, který vrací, Get-ChildItem je určen objekty v cestě k jednotce zprostředkovatele.

String

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

Poznámky

  • Můžete odkazovat Get-ChildItem na předdefinované aliasy , lsdira gci. Další informace najdete v tématu about_Aliases.
  • Get-ChildItem ve výchozím nastavení nezískuje skryté položky. Pokud chcete získat skryté položky, použijte parametr Force .
  • Rutina Get-ChildItem je navržená tak, aby pracovala s daty vystavenými libovolným poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných v relaci, zadejte Get-PSProvider. Další informace najdete v tématu about_Providers.