Get-ChildItem

Hämtar objekt och underordnade objekt på en eller flera angivna platser.

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

Cmdleten Get-ChildItem hämtar objekten på en eller flera angivna platser. Om objektet är en container hämtas objekten i containern, så kallade underordnade objekt. Du kan använda parametern Recurse för att hämta objekt i alla underordnade containrar och använda parametern Djup för att begränsa antalet nivåer som ska upprepas.

Get-ChildItem visar inte tomma kataloger. När ett Get-ChildItem kommando innehåller parametrarna Djup eller Recurse inkluderas inte tomma kataloger i utdata.

Platser exponeras för Get-ChildItem av PowerShell-leverantörer. En plats kan vara en filsystemkatalog, registreringsdatafil eller ett certifikatarkiv. Mer information finns i about_Providers.

Exempel

Exempel 1: Hämta underordnade objekt från en filsystemkatalog

Det här exemplet hämtar underordnade objekt från en filsystemkatalog. Filnamnen och underkatalognamnen visas. För tomma platser returnerar kommandot inga utdata och återgår till PowerShell-prompten.

Cmdleten Get-ChildItem använder parametern Path för att ange katalogen C:\Test. Get-ChildItem visar filerna och katalogerna i PowerShell-konsolen.

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

Som standard Get-ChildItem visas läget (attribut), LastWriteTime, filstorleken (längd) och objektets namn . Bokstäverna i egenskapen Mode kan tolkas på följande sätt:

  • l (länk)
  • d (katalog)
  • a (arkiv)
  • r (skrivskyddad)
  • h (dold)
  • s (system).

Mer information om lägesflaggor finns i about_Filesystem_Provider.

Exempel 2: Hämta underordnade objektnamn i en katalog

I det här exemplet visas endast namnen på objekt i en katalog.

Cmdleten Get-ChildItem använder parametern Path för att ange katalogen C:\Test. Parametern Name returnerar endast fil- eller katalognamnen från den angivna sökvägen.

Get-ChildItem -Path C:\Test -Name

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

Exempel 3: Hämta underordnade objekt i den aktuella katalogen och underkatalogerna

I det här exemplet visas .txt filer som finns i den aktuella katalogen och dess underkataloger.

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

Cmdleten Get-ChildItem använder parametern Path för att ange C:\Test\*.txt. Sökvägen använder jokertecknet asterisk (*) för att ange alla filer med filnamnstillägget .txt. Parametern Recurse söker i katalogen Path dess underkataloger, som du ser i rubrikerna Katalog: . Parametern Force visar dolda filer, till exempel hiddenfile.txt som har h-läge.

Exempel 4: Hämta underordnade objekt med hjälp av parametern Include

I det här exemplet Get-ChildItem används parametern Include för att hitta specifika objekt från katalogen som anges av parametern 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

Cmdleten Get-ChildItem använder parametern Path för att ange katalogen C:\Test. Parametern Path innehåller ett avslutande asterisk* () jokertecken för att ange katalogens innehåll. Parametern Include använder en asterisk (*) jokertecken för att ange alla filer med filnamnstillägget .txt.

När parametern Include används behöver parametern Path ett avslutande asterisk* () jokertecken för att ange katalogens innehåll. Till exempel -Path C:\Test\*.

  • Om parametern Recurse läggs till i kommandot är den avslutande asterisken (*) i parametern Path valfri. Parametern Recurse hämtar objekt från katalogen Path och dess underkataloger. Till exempel -Path C:\Test\ -Recurse -Include *.txt
  • Om en avslutande asterisk (*) inte ingår i parametern Path returnerar kommandot inga utdata och återgår till PowerShell-prompten. Till exempel -Path C:\Test\.

Exempel 5: Hämta underordnade objekt med parametern Exkludera

I exemplets utdata visas innehållet i katalogen C:\Test\Logs. Utdata är en referens för de andra kommandona som använder parametrarna Exkludera och Upprepa .

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

Cmdleten Get-ChildItem använder parametern Path för att ange katalogen C:\Test\Logs. Parametern Exclude använder jokertecknet asterisk (*) för att ange filer eller kataloger som börjar med A eller a undantas från utdata.

När parametern Exclude används är en avslutande asterisk (*) i parametern Path valfri. Exempel: -Path C:\Test\Logs eller -Path C:\Test\Logs\*.

  • Om en avslutande asterisk (*) inte ingår i parametern Path visas innehållet i parametern Path . Undantagen är filnamn eller underkatalognamn som matchar värdet för parametern Exclude .
  • Om en avslutande asterisk (*) ingår i parametern Path upprepas kommandot i underkatalogerna för parametern Path . Undantagen är filnamn eller underkatalognamn som matchar värdet för parametern Exclude .
  • Om parametern Recurse läggs till i kommandot är rekursionsutdata samma oavsett om parametern Path innehåller en avslutande asterisk (*).

Exempel 6: Hämta registernycklarna från en registreringsdatafil

Det här exemplet hämtar alla registernycklar från HKEY_LOCAL_MACHINE\HARDWARE.

Get-ChildItem använder parametern Path för att ange registernyckeln HKLM:\HARDWARE. Registreringsdatafilens sökväg och högsta nivå av registernycklar visas i PowerShell-konsolen.

Mer information finns i 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

Det första kommandot visar innehållet i registernyckeln HKLM:\HARDWARE . Parametern Exclude instruerar Get-ChildItem att inte returnera några undernycklar som börjar med D*. För närvarande fungerar parametern Exclude endast på undernycklar, inte objektegenskaper.

Exempel 7: Hämta alla certifikat med kodsigneringsutfärdare

Det här exemplet hämtar varje certifikat i PowerShell-certifikatet: enhet som har kodsigneringsutfärdare.

Cmdleten Get-ChildItem använder parametern Path för att ange providern Cert: . Parametern Recurse söker i katalogen som anges av Path och dess underkataloger. Parametern CodeSigningCert hämtar endast certifikat som har kodsigneringsutfärdare.

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

Mer information om certifikatprovidern och enheten Cert: finns i about_Certificate_Provider.

Exempel 8: Hämta objekt med hjälp av parametern Depth

I det här exemplet visas objekten i en katalog och dess underkataloger. Parametern Depth avgör antalet underkatalognivåer som ska inkluderas i rekursionen. Tomma kataloger undantas från utdata.

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

Cmdleten Get-ChildItem använder parametern Path för att ange C:\Parent. Parametern Depth anger två rekursionsnivåer. Get-ChildItem visar innehållet i katalogen som anges av parametern Path och de två nivåerna av underkataloger.

Exempel 9: Hämta hårdlänksinformation

I PowerShell 6.2 har en alternativ vy lagts till för att hämta hårdlänksinformation.

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

Exempel 10: Utdata för operativsystem som inte kommer från Windows

I PowerShell 7.1 på Unix-system Get-ChildItem tillhandahåller Unix-liknande utdata:

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

De nya egenskaperna som nu är en del av utdata är:

  • UnixMode är filbehörigheterna som representeras i ett Unix-system
  • Användaren är filägare
  • Gruppen är gruppens ägare
  • Storleken är storleken på filen eller katalogen som representeras i ett Unix-system

Anteckning

Den här funktionen har flyttats från experimentell till vanlig i PowerShell 7.1.

Exempel 11 – Hämta länkmålet för en knutpunkt

Kommandot dir i Windows-kommandogränssnittet visar målplatsen för en kopplingspunkt för filsystemet. I PowerShell är den här informationen tillgänglig från egenskapen LinkTarget för filsystemobjektet som returneras av Get-ChildItem och visas i standardutdata.

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

Parametrar

-Attributes

Hämtar filer och mappar med de angivna attributen. Den här parametern stöder alla attribut och gör att du kan ange komplexa kombinationer av attribut.

Om du till exempel vill hämta icke-systemfiler (inte kataloger) som är krypterade eller komprimerade skriver du:

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

Om du vill hitta filer och mappar med attribut som används ofta använder du parametern Attribut . Eller parametrarna Directory, File, Hidden, ReadOnly och System.

Parametern Attribut har stöd för följande egenskaper:

  • Arkiv
  • Komprimerade
  • Enhet
  • Katalog
  • Krypterad
  • Dold
  • IntegrityStream
  • Normal
  • NoScrubData
  • NotContentIndexed
  • Offline
  • ReadOnly
  • Referenspunkt
  • SparseFile
  • System
  • Tillfälliga

En beskrivning av dessa attribut finns i FileAttributes Enumeration.

Använd följande operatorer för att kombinera attribut:

  • ! (INTE)
  • + (OCH)
  • , (OR)

Använd inte blanksteg mellan en operator och dess attribut. Blanksteg accepteras efter kommatecken.

För vanliga attribut använder du följande förkortningar:

  • D (Katalog)
  • H (Dold)
  • R (Skrivskyddad)
  • S (System)
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

Den här parametern har lagts till i PowerShell 5.0 och gör att du kan kontrollera rekursionsdjupet. Som standard Get-ChildItem visas innehållet i den överordnade katalogen. Parametern Depth avgör antalet underkatalognivåer som ingår i rekursionen och visar innehållet.

Innehåller till exempel Depth 2sökvägsparameterns katalog, den första nivån av underkataloger och den andra nivån av underkataloger. Som standard inkluderas katalognamn och filnamn i utdata.

Anteckning

På en Windows-dator från PowerShell eller cmd.exekan du visa en grafisk vy av en katalogstruktur med kommandot tree.com .

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

-Directory

Om du vill hämta en lista över kataloger använder du parametern Directory eller parametern Attribut med egenskapen Katalog . Du kan använda parametern Recurse med Directory.

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

-Exclude

Anger en matris med ett eller flera strängmönster som ska matchas när cmdleten hämtar underordnade objekt. Alla matchande objekt undantas från utdata. Ange ett sökvägselement eller mönster, till exempel *.txt eller A*. Jokertecken accepteras.

En avslutande asterisk (*) i parametern Path är valfri. Exempel: -Path C:\Test\Logs eller -Path C:\Test\Logs\*. Om en avslutande asterisk (*) ingår upprepas kommandot i path-parameterns underkataloger. Utan asterisken (*) visas innehållet i parametern Path . Mer information finns i exempel 5 och avsnittet Anteckningar.

Parametrarna Include och Exclude kan användas tillsammans. Undantagen tillämpas dock efter inkluderingarna, vilket kan påverka de slutliga utdata.

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

-File

Om du vill hämta en lista över filer använder du filparametern . Du kan använda parametern Recurse med File.

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

-Filter

Anger ett filter för att kvalificera parametern Path . FileSystem-providern är den enda installerade PowerShell-providern som stöder filter. Filter är effektivare än andra parametrar. Providern tillämpar filter när cmdleten hämtar objekten i stället för att Låta PowerShell filtrera objekten när de har hämtats. Filtersträngen skickas till .NET-API:et för att räkna upp filer. API:et stöder * endast jokertecken och ? .

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

-FollowSymlink

Som standard visar cmdleten Get-ChildItem symboliska länkar till kataloger som hittades under rekursionen, men återkommer inte till dem. Använd parametern FollowSymlink för att söka i de kataloger som är avsedda för dessa symboliska länkar. FollowSymlink är en dynamisk parameter och stöds endast i FileSystem-providern.

Den här parametern introducerades i PowerShell 6.0.

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

-Force

Tillåter att cmdleten hämtar objekt som annars inte kan nås av användaren, till exempel dolda filer eller systemfiler. Parametern Force åsidosätter inte säkerhetsbegränsningar. Implementeringen varierar mellan olika leverantörer. Mer information finns i about_Providers.

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

-Hidden

Om du bara vill hämta dolda objekt använder du parametern Hidden (Dold ) eller Attributes (Attribut ) med egenskapen Hidden (Dold ). Som standard Get-ChildItem visas inte dolda objekt. Använd parametern Force för att hämta dolda objekt.

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

-Include

Anger en matris med ett eller flera strängmönster som ska matchas när cmdleten hämtar underordnade objekt. Alla matchande objekt ingår i utdata. Ange ett sökvägselement eller mönster, till exempel "*.txt". Jokertecken tillåts. Parametern Include gäller endast när kommandot innehåller innehållet i ett objekt, till exempel C:\Windows\*, där jokertecknet anger innehållet i C:\Windows katalogen.

Parametrarna Include och Exclude kan användas tillsammans. Undantagen tillämpas dock efter inkluderingarna, vilket kan påverka de slutliga utdata.

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

-LiteralPath

Anger en sökväg till en eller flera platser. Värdet för LiteralPath används exakt som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den med enkla citattecken. Enkla citattecken gör att PowerShell inte tolkar några tecken som escape-sekvenser.

Mer information finns i about_Quoting_Rules.

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

-Name

Hämtar bara namnen på objekten på platsen. Utdata är ett strängobjekt som kan skickas ned i pipelinen till andra kommandon. Jokertecken tillåts.

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

-Path

Anger en sökväg till en eller flera platser. Jokertecken accepteras. Standardplatsen är den aktuella katalogen (.).

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

-ReadOnly

Om du bara vill hämta skrivskyddade objekt använder du parametern ReadOnly eller egenskapen Attributesparameter ReadOnly .

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

-Recurse

Hämtar objekten på de angivna platserna och i alla underordnade objekt på platserna.

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

-System

Hämtar endast systemfiler och kataloger. Om du bara vill hämta systemfiler och mappar använder du systemparametern eller egenskapen AttributparameterSystem.

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

Indata

String

Du kan skicka en sträng som innehåller en sökväg till Get-ChildItem.

Utdata

Object

Vilken typ av objekt som Get-ChildItem returneras bestäms av objekten i providerenhetens sökväg.

String

Om du använder parametern Get-ChildItemNamn returnerar objektnamnen som strängar.

Kommentarer

  • Get-ChildItem kan köras med något av de inbyggda aliasen, ls, diroch gci. Mer information finns i about_Aliases.
  • Get-ChildItem får inte dolda objekt som standard. Om du vill hämta dolda objekt använder du parametern Force .
  • Cmdleten Get-ChildItem är utformad för att fungera med data som exponeras av alla leverantörer. Om du vill visa en lista över de providrar som är tillgängliga i sessionen skriver du Get-PSProvider. Mer information finns i about_Providers.