Condividi tramite


Get-ChildItem

Ottiene gli elementi e gli elementi figlio in uno o più percorsi specificati,

Sintassi

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>]

Descrizione

Il Get-ChildItem cmdlet ottiene gli elementi in una o più posizioni specificate. Se l'elemento è un contenitore, ottiene gli elementi all'interno del contenitore, detti anche elementi figlio. È possibile usare il parametro Recurse per ottenere gli elementi in tutti i contenitori figlio e usare il parametro Depth per limitare il numero di livelli da recuperare.

Get-ChildItem non visualizza directory vuote. Quando un Get-ChildItem comando include i parametri Depth o Recurse , le directory vuote non sono incluse nell'output.

Le posizioni vengono esposte ai Get-ChildItem provider di PowerShell. Un percorso può essere una directory del file system, un hive del Registro di sistema o un archivio certificati. Per altre informazioni, vedere about_Providers.

Esempio

Esempio 1: Ottenere elementi figlio da una directory del file system

Questo esempio ottiene gli elementi figlio da una directory del file system. Vengono visualizzati i nomi di file e i nomi di sottodirectory. Per le posizioni vuote, il comando non restituisce alcun output e restituisce al prompt di PowerShell.

Il Get-ChildItem cmdlet usa il parametro Path per specificare la directory C:\Test. Get-ChildItem visualizza i file e le directory nella console di PowerShell.

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

Per impostazione predefinita, viene elencata Get-ChildItem la modalità (attributi), LastWriteTime, le dimensioni del file (lunghezza) e il nome dell'elemento. Le lettere nella proprietà Mode possono essere interpertate come segue:

  • l (collegamento)
  • d (directory)
  • a (archivio)
  • r (sola lettura)
  • h (nascosto)
  • s (sistema).

Per altre informazioni sui flag di modalità, vedere about_Filesystem_Provider.

Esempio 2: Ottenere nomi di elementi figlio in una directory

Questo comando elenca solo i nomi degli elementi in una directory.

Il Get-ChildItem cmdlet usa il parametro Path per specificare la directory C:\Test. Il parametro Name restituisce solo i nomi di file o directory dal percorso specificato.

Get-ChildItem -Path C:\Test -Name

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

Esempio 3: Ottenere elementi figlio nella directory corrente e nelle sottodirectory

In questo esempio vengono visualizzati .txt file che si trovano nella directory corrente e nelle relative sottodirectory.

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

Il Get-ChildItem cmdlet usa il parametro Path per specificare C:\Test\*.txt. Il percorso usa il carattere jolly asterisco (*) per specificare tutti i file con l'estensione del nome file .txt. Il parametro Recurse cerca la directory Path nelle sottodirectory, come illustrato nelle intestazioni Directory: Il parametro Force visualizza file nascosti, ad esempio hiddenfile.txt con una modalità h.

Esempio 4: Ottenere elementi figlio usando il parametro Include

In questo esempio Get-ChildItem viene usato il parametro Include per trovare elementi specifici dalla directory specificata dal parametro 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

Il Get-ChildItem cmdlet usa il parametro Path per specificare la directory C:\Test. Il parametro Path include un carattere jolly finale (*) per specificare il contenuto della directory. Il parametro Include usa un carattere jolly asterisco (*) per specificare tutti i file con l'estensione del nome file .txt.

Quando viene usato il parametro Include , il parametro Path richiede un carattere jolly finale (*) per specificare il contenuto della directory. Ad esempio: -Path C:\Test\*.

  • Se il parametro Recurse viene aggiunto al comando, l'asterisco finale (*) nel parametro Path è facoltativo. Il parametro Recurse ottiene elementi dalla directory Path e dalle relative sottodirectory. Ad esempio: -Path C:\Test\ -Recurse -Include *.txt
  • Se un asterisco finale (*) non è incluso nel parametro Path , il comando non restituisce alcun output e restituisce al prompt di PowerShell. Ad esempio: -Path C:\Test\.

Esempio 5: Ottenere elementi figlio usando il parametro Escludi

L'output dell'esempio mostra il contenuto della directory C:\Test\Logs. L'output è un riferimento per gli altri comandi che usano i parametri Exclude e 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

Il Get-ChildItem cmdlet usa il parametro Path per specificare la directory C:\Test\Logs. Il parametro Exclude usa il carattere jolly asterisco (*) per specificare i file o le directory che iniziano con A o un oggetto vengono esclusi dall'output.

Quando viene usato il parametro Exclude , un asterisco finale (*) nel parametro Path è facoltativo. Ad esempio, -Path C:\Test\Logs o -Path C:\Test\Logs\*.

  • Se un asterisco finale (*) non è incluso nel parametro Path , viene visualizzato il contenuto del parametro Path . Le eccezioni sono nomi di file o nomi di sottodirectory corrispondenti al valore del parametro Exclude .
  • Se un asterisco finale (*) è incluso nel parametro Path , il comando si ripete nelle sottodirectory del parametro Path . Le eccezioni sono nomi di file o nomi di sottodirectory corrispondenti al valore del parametro Exclude .
  • Se il parametro Recurse viene aggiunto al comando, l'output di ricorsione è lo stesso se il parametro Path include un asterisco finale (*).

Esempio 6: Ottenere le chiavi del Registro di sistema da un hive del Registro di sistema

Questo comando ottiene tutte le chiavi del Registro di sistema dalla chiave del HKEY_LOCAL_MACHINE\HARDWARE Registro di sistema.

Get-ChildItem usa il parametro Path per specificare la chiave HKLM:\HARDWAREdel Registro di sistema . Il percorso dell'hive e il livello principale delle chiavi del Registro di sistema vengono visualizzati nella console di PowerShell.

Per altre informazioni, vedere 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

Il primo comando mostra il contenuto della chiave del HKLM:\HARDWARE Registro di sistema. Il parametro Exclude indica Get-ChildItem di non restituire alcuna sottochiave che inizia con D*. Attualmente, il parametro Exclude funziona solo sulle sottochiave, non sulle proprietà dell'elemento.

Esempio 7: Ottenere tutti i certificati con l'autorità di firma del codice

Questo comando ottiene ogni certificato nell'unità Cert di PowerShell : con autorità di firma del codice.

Il Get-ChildItem cmdlet usa il parametro Path per specificare il provider Cert: Il parametro Recurse cerca la directory specificata da Path e le relative sottodirectory. Il parametro CodeSigningCert ottiene solo i certificati con autorità di firma del codice.

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

Per altre informazioni sul provider di certificati e sull'unità Cert: vedere about_Certificate_Provider.

Esempio 8: Ottenere elementi usando il parametro Depth

Questo comando visualizza gli elementi in una directory e le relative sottodirectory. Il parametro Depth determina il numero di livelli di sottodirectory da includere nella ricorsione. Le directory vuote vengono escluse dall'output.

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

Il Get-ChildItem cmdlet usa il parametro Path per specificare C:\Parent. Il parametro Depth specifica due livelli di ricorsione. Get-ChildItem visualizza il contenuto della directory specificata dal parametro Path e i due livelli di sottodirectory.

Parametri

-Attributes

Ottiene i file e le cartelle con gli attributi specificati. Questo parametro supporta tutti gli attributi e consente di specificarne complesse combinazioni.

Ad esempio, per ottenere file non di sistema (non directory) crittografati o compressi, digitare:

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

Per trovare file e cartelle con attributi usati comunemente, usare il parametro Attributi . In alternativa, i parametri Directory, File, Hidden, ReadOnly e System.

Il parametro Attributes supporta le proprietà seguenti:

  • Archiviazione
  • Compressed
  • Dispositivo
  • Directory
  • Crittografata
  • Hidden
  • IntegritàStream
  • Normal
  • NoScrubData
  • NotContentIndexed
  • Offline
  • ReadOnly
  • ReparsePoint
  • SparseFile
  • Sistema
  • Temporanea

Per una descrizione di questi attributi, vedere l'enumerazione FileAttributes.

Per combinare gli attributi, usare gli operatori seguenti:

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

Non usare spazi tra un operatore e il relativo attributo. Gli spazi vengono accettati dopo virgole.

Per gli attributi comuni, usare le abbreviazioni seguenti:

  • D (Directory)
  • H (Nascosto)
  • R (Sola lettura)
  • S (Sistema)
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

Questo parametro è stato aggiunto in PowerShell 5.0 e consente di controllare la profondità di ricorsione. Per impostazione predefinita, Get-ChildItem visualizza il contenuto della directory padre. Il parametro Depth determina il numero di livelli di sottodirectory inclusi nella ricorsione e visualizza il contenuto.

Ad esempio, Depth 2 include la directory del parametro Path , il primo livello di sottodirectory e il secondo livello di sottodirectory. Per impostazione predefinita, i nomi di directory e i nomi dei file vengono inclusi nell'output.

Nota

In un computer Windows da PowerShell o cmd.exeè possibile visualizzare una visualizzazione grafica di una struttura di directory con il comando tree.com .

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

-Directory

Per ottenere un elenco di directory, usare il parametro Directory o il parametro Attributes con la proprietà Directory . È possibile usare il parametro Recurse con Directory.

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

-Exclude

Specifica, come matrice di stringhe, una proprietà o una proprietà che questo cmdlet esclude dall'operazione. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello del percorso, ad esempio *.txt o A*. I caratteri jolly sono consentiti.

Un asterisco finale (*) nel parametro Path è facoltativo. Ad esempio, -Path C:\Test\Logs o -Path C:\Test\Logs\*. Se viene incluso un asterisco finale (*), il comando si ripete nelle sottodirectory del parametro Path . Senza l'asterisco (*), viene visualizzato il contenuto del parametro Path . Altri dettagli sono inclusi nell'esempio 5 e nella sezione Note.

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

-File

Per ottenere un elenco di file, usare il parametro File . È possibile usare il parametro Recurse con File.

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

-Filter

Specifica un filtro per qualificare il parametro Path . Il provider FileSystem è l'unico provider di PowerShell installato che supporta l'uso dei filtri. I filtri sono più efficienti di altri parametri, perché il provider li applica quando il cmdlet ottiene gli oggetti invece di filtrare gli oggetti di PowerShell dopo il recupero. La stringa di filtro viene passata all'API .NET per enumerare i file. L'API supporta * solo i caratteri jolly e ? .

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

-Force

Consente al cmdlet di ottenere elementi che diversamente non sono accessibili all'utente, ad esempio file nascosti o di sistema. Il parametro Force non esegue l'override delle restrizioni di sicurezza. L'implementazione varia a seconda del provider. Per altre informazioni, vedere about_Providers.

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

-Hidden

Per ottenere solo elementi nascosti, usare il parametro Hidden o il parametro Attributes con la proprietà Hidden . Per impostazione predefinita, Get-ChildItem non vengono visualizzati elementi nascosti. Usare il parametro Force per ottenere elementi nascosti.

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

-Include

Specifica, come matrice di stringhe, un elemento o un elemento che questo cmdlet include nell'operazione. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello del percorso, ad esempio "*.txt". I caratteri jolly sono consentiti. Il parametro Include è efficace solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della C:\Windows directory.

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

-LiteralPath

Specifica un percorso di una o più posizioni. Il valore di LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare i caratteri come sequenze di escape.

Per altre informazioni, vedere about_Quoting_Rules.

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

-Name

Ottiene solo i nomi degli elementi nella posizione. L'output è un oggetto stringa che può essere inviato alla pipeline ad altri comandi. I caratteri jolly sono consentiti.

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

-Path

Specifica un percorso di una o più posizioni. I caratteri jolly sono accettati. Il percorso predefinito è la directory corrente (.).

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

-ReadOnly

Per ottenere solo elementi di sola lettura, usare il parametro ReadOnly o la proprietà Attributesparameter ReadOnly .

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

-Recurse

Ottiene gli elementi nei percorsi specificati e in tutti gli elementi figlio dei percorsi.

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

-System

Ottiene solo file di sistema e directory. Per ottenere solo file di sistema e cartelle, usare la proprietà System parameter o Attributes parameter System .

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

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_Transactions.

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

Input

String

È possibile inviare una pipe a una stringa contenente un percorso a Get-ChildItem.

Output

Object

Il tipo di oggetto restituito Get-ChildItem è determinato dagli oggetti nel percorso dell'unità del provider.

String

Se si usa il parametro Name , Get-ChildItem restituisce i nomi degli oggetti come stringhe.

Note

  • È possibile fare riferimento agli Get-ChildItem alias predefiniti, ls, dire gci. Per altre informazioni, vedere about_Aliases.
  • Get-ChildItem non ottiene elementi nascosti per impostazione predefinita. Per ottenere elementi nascosti, usare il parametro Force.
  • Il Get-ChildItem cmdlet è progettato per usare i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PSProvider. Per altre informazioni, vedere about_Providers.