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:\HARDWARE
del 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
È possibile inviare una pipe a una stringa contenente un percorso a Get-ChildItem
.
Output
Il tipo di oggetto restituito Get-ChildItem
è determinato dagli oggetti nel percorso dell'unità del provider.
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
,dir
egci
. 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, digitareGet-PSProvider
. Per altre informazioni, vedere about_Providers.