Riceve gli elementi e gli elementi figli in una o più posizioni specificate.
- Sintassi
- Descrizione
- Esempi
- Esempio 1: ottenere elementi figli da una directory del file system
- Esempio 2: ottenere i nomi degli elementi figli in una directory
- Esempio 3: Ottenere elementi figli nella directory corrente e nelle sottodirectory
- Esempio 4: ottenere elementi figli usando il parametro Include
- Esempio 5: ottenere elementi figli usando il parametro Exclude
- Esempio 6: ottenere le chiavi di registro da un alveare di registro
- Esempio 7: Ottieni tutti i certificati con autorità di firma del codice
- Esempio 8: ottenere elementi usando il parametro Depth
- Esempio 9: Ottenere informazioni sugli hard link
- Esempio 10: Output per sistemi operativi non Windows
- Parametri
- Input
- Outputs
- Note
Sintassi
Get-ChildItem <string>] <string>] >] >] >]
Get-ChildItem <string>] -LiteralPath <string> >] >] >]
Descrizione
La cmdlet Get-ChildItem
ottiene gli elementi in una o più posizioni specificate. Se l’elemento è un contenitore, ottiene gli elementi all’interno del contenitore, conosciuti come elementi figli. Puoi usare il parametro Recurseparameter per ottenere gli elementi in tutti i contenitori figli e usare il parametro Depth per limitare il numero di livelli da ricercare.
Get-ChildItem
non visualizza le directory vuote. Quando un comando Get-ChildItem
include i parametri Depth o Recurse, le directory vuote non sono incluse nell’output.
Le località sono esposte a Get-ChildItem
dai provider PowerShell. Una posizione può essere una directory del file system, un alveare del registro o un negozio di certificati. Per maggiori informazioni, vedi about_Providers.
Esempi
Esempio 1: ottenere elementi figli da una directory del file system
Questo esempio ottiene gli elementi figli da una directory del file system. Vengono visualizzati i nomi dei file e delle sottodirectory. Per le posizioni vuote, il comando non restituisce alcun output e ritorna al prompt di PowerShell.
Il cmdlet Get-ChildItem
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:\TestDirectory: C:\TestMode 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 default Get-ChildItem
elenca la modalità (Attributes), LastWriteTime, la dimensione del file (Length) e il nome dell’elemento. Le lettere nella proprietà Mode possono essere interpretate come segue:
-
l
(link) -
d
(directory) -
a
(archive) -
r
(read-only) -
h
(hidden) -
s
(system).
Per maggiori informazioni sui flag di modalità, vediabout_Filesystem_Provider.
Esempio 2: ottenere i nomi degli elementi figli in una directory
Questo esempio elenca solo i nomi degli elementi in una directory.
La cmdlet Get-ChildItem
usa il parametro Path per specificare la directory C:\Test
. Il parametroName restituisce solo i nomi dei file o delle directory dal percorso specificato.
Get-ChildItem -Path C:\Test -NameLogsanotherfile.txtCommand.txtCreateTestFile.ps1ReadOnlyFile.txt
Esempio 3: Ottenere elementi figli nella directory corrente e nelle sottodirectory
Questo esempio visualizza i file .txt che si trovano nella directory corrente e nelle sue sottodirectory.
Get-ChildItem -Path C:\Test\*.txt -Recurse -ForceDirectory: C:\Test\Logs\AdirectoryMode 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\BackupMode LastWriteTime Length Name---- ------------- ------ -----a---- 2/12/2019 16:16 20 ATextFile.txt-a---- 2/12/2019 15:50 20 LogFile3.txt Directory: C:\Test\LogsMode 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:\TestMode 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
La cmdlet Get-ChildItem
utilizza il parametro Path per specificare C:\Test\*.txt
. Path usa il carattere jollyasterisk (*
) per specificare tutti i file con estensione .txt
. Il parametro Recurseparameter cerca nella directory Path le sue sottodirectory, come mostrato nei titoli Directory:headings. Il parametro Force visualizza i file nascosti come hiddenfile.txt
che hanno un modeof h.
Esempio 4: ottenere elementi figli usando il parametro Include
In questo esempio Get-ChildItem
usa il parametro Include per trovare elementi specifici dalla directory specificata dal parametro 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 *.txtGet-ChildItem -Path C:\Test\* -Include *.txtDirectory: C:\TestMode 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
La cmdlet Get-ChildItem
usa il parametro Path per specificare la directory C:\Test. Il parametro Path include un asterisco finale (*
) per specificare il contenuto della directory.Il parametro Include usa un asterisco (*
) per specificare tutti i file con estensione .txt.
Quando viene usato il parametro Include, il parametro Path necessita di un asterisco finale (*
) per specificare il contenuto della directory. Per esempio, -Path C:\Test\*
.
- Se il parametro Recurse è aggiunto al comando, l’asterisco finale (
*
) nel parametro Path è opzionale. Il parametro Recurse ottiene elementi dalla directory Path e dalle sue sottodirectory. Per esempio,-Path C:\Test\ -Recurse -Include *.txt
- Se un asterisco finale (
*
) non è incluso nel parametro Path, il comando non restituisce alcun output e ritorna al prompt di PowerShell. Per esempio,-Path C:\Test\
.
Esempio 5: ottenere elementi figli usando il parametro Exclude
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\LogsDirectory: C:\Test\LogsMode LastWriteTime Length Name---- ------------- ------ ----d----- 2/15/2019 13:21 Adirectoryd----- 2/15/2019 08:28 AnEmptyDirectoryd----- 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.logGet-ChildItem -Path C:\Test\Logs\* -Exclude A*Directory: C:\Test\LogsMode 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 cmdlet Get-ChildItem
usa il parametro Path per specificare la directory C:\Test\Logs
.Il parametro Exclude usa il carattere jolly asterisco (*
) per specificare qualsiasi file o directory che inizia con A o a sono esclusi dall’output.
Quando il parametro Exclude è usato, un asterisco finale (*
) nel parametro Path è opzionale. Per 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 sottodirectory che corrispondono al valore del parametroExclude. - Se un asterisco finale (
*
) è incluso nel parametro Path, il comando ricorre alle sottodirectory del parametroPath. Le eccezioni sono i nomi dei file o delle sottodirectory che corrispondono al valore del parametro Exclude. - Se il parametro Recurse è aggiunto al comando, l’output della ricorsione è lo stesso sia che il parametro Path includa o meno un asterisco finale (
*
).
Esempio 6: ottenere le chiavi di registro da un alveare di registro
Questo esempio ottiene tutte le chiavi di registro da HKEY_LOCAL_MACHINE\HARDWARE
.
Get-ChildItem
usa il parametro Path per specificare la chiave di registro HKLM:\HARDWARE
. Il percorso dell’alveare e il livello superiore delle chiavi di registro sono visualizzati nella console PowerShell.
Per maggiori informazioni, vedi about_Registry_Provider.
Get-ChildItem -Path HKLM:\HARDWAREHive: HKEY_LOCAL_MACHINE\HARDWAREName Property---- --------ACPIDESCRIPTIONDEVICEMAPRESOURCEMAPUEFIGet-ChildItem -Path HKLM:\HARDWARE -Exclude D*Hive: HKEY_LOCAL_MACHINE\HARDWAREName Property---- --------ACPIRESOURCEMAP
Il primo comando mostra il contenuto della chiave di registro HKLM:\HARDWARE
. Il parametro Exclude dice a Get-ChildItem
di non restituire nessuna sottochiave che inizi con D*
. Attualmente, il parametro Exclude funziona solo sulle sottochiavi, non sulle proprietà degli elementi.
Esempio 7: Ottieni tutti i certificati con autorità di firma del codice
Questo esempio ottiene ogni certificato nell’unità PowerShell Cert: che ha autorità di firma del codice.
La cmdlet Get-ChildItem
usa il parametro Path per specificare il provider Cert:. Il parametroRecurse cerca la directory specificata da Path e le sue sottodirectory. Il parametroCodeSigningCert ottiene solo i certificati che hanno autorità di firma del codice.
Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert
Per maggiori informazioni sul fornitore di certificati e sull’unità Cert:, vedi about_Certificate_Provider.
Esempio 8: ottenere elementi usando il parametro Depth
Questo esempio visualizza gli elementi in una directory e le sue sottodirectory. Il parametro Depth determina il numero di livelli di sottodirectory da includere nella ricorsione. Le directory vuote sono escluse dall’output.
Get-ChildItem -Path C:\Parent -Depth 2Directory: C:\ParentMode LastWriteTime Length Name---- ------------- ------ ----d----- 2/14/2019 10:24 SubDir_Level1-a---- 2/13/2019 08:55 26 file.txt Directory: C:\Parent\SubDir_Level1Mode 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_Level2Mode LastWriteTime Length Name---- ------------- ------ ----d----- 2/14/2019 10:22 SubDir_Level3-a---- 2/13/2019 08:55 26 file.txt
La cmdlet Get-ChildItem
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.
Esempio 9: Ottenere informazioni sugli hard link
In PowerShell 6.2, è stata aggiunta una vista alternativa per ottenere informazioni sugli hard link.
Get-ChildItem -Path C:\PathContainingHardLink | Format-Table -View childrenWithHardLink
Esempio 10: Output per sistemi operativi non Windows
In PowerShell 7.1 su sistemi Unix, il Get-ChildItem
fornisce un output simile a quello di Unix:
PS> Get-ChildItem /etc/r*Directory: /etcUnixMode 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.netbootlrwxr-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
Le nuove proprietà che ora fanno parte dell’output sono:
- UnixMode sono i permessi del file come rappresentati su un sistema Unix
- User è il proprietario del file
- Group è il proprietario del gruppo
- Size è la dimensione del file o della directory come rappresentata su un sistema Unix
Nota
Questa caratteristica è stata spostata da sperimentale a mainstream in PowerShell 7.1.
Parametri
Riceve file e cartelle con gli attributi specificati. Questo parametro supporta tutti gli attributi e permette di specificare combinazioni complesse di attributi.
Per esempio, per ottenere file non di sistema (non directory) che sono criptati o compressi, digitate:
Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed
Per trovare file e cartelle con attributi comunemente usati, usate il parametro Attributes. Oppure i parametri Directory, File, Hidden, ReadOnly e System.
Il parametro Attributi supporta le seguenti proprietà:
- Archive
- Compresso
- Device
- Directory
- Encrypted
- Hidden
- IntegrityStream
- Normal
- NoScrubData
- NotContentIndexed
- Offline
- ReadOnly
- ReparsePoint
- SparseFile
- System
- Temporary
Per una descrizione di questi attributi, vedere l’enumerazione FileAttributes.
Per combinare gli attributi, usate i seguenti operatori:
-
!
(NOT) -
+
(AND) -
,
(OR)
Non usate spazi tra un operatore e il suo attributo. Gli spazi sono accettati dopo le virgole.
Per gli attributi comuni, usare le seguenti abbreviazioni:
-
D
(Directory) -
H
(Hidden) -
R
(Read-only) -
S
(System)
Type: | FlagsExpression<T> |
Valori accettati: | Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary |
Posizione: | Named |
Valore predefinito: | Nessuno |
Accetta input pipeline: | False |
Accetta caratteri jolly: | False |
Questo parametro è stato aggiunto in PowerShell 5.0 e permette di controllare la profondità della ricorsione. Per impostazione predefinita, Get-ChildItem
visualizza il contenuto della directory madre. Il parametro Depth determina il numero di livelli di sottodirectory che sono inclusi nella ricorsione e visualizza i contenuti.
Per esempio, Depth 2
include la directory del parametro Path, il primo livello di sottodirectory e il secondo livello di sottodirectory. Per default i nomi delle directory e dei file sono inclusi nell’output.
Nota
Su un computer Windows da PowerShell o cmd.exe, puoi visualizzare una vista grafica della struttura di una directory con il comando tree.com.
Type: | UInt32 |
Position: | Named |
Valore predefinito: | None |
Accetta input da pipeline: | False |
Accetta caratteri jolly: | False |
Per ottenere una lista di directory, usa il parametro Directory o il parametro Attributes con la proprietà Directory. Puoi usare il parametro Recurse con Directory.
Type: | SwitchParameter |
Alias: | ad, d |
Posizione: | Named |
Valore predefinito: | None |
Accetta ingresso pipeline: | False |
Accetta caratteri jolly: | False |
Specifica, come array di stringhe, una proprietà o una proprietà che questa cmdlet esclude dall’operazione.Il valore di questo parametro qualifica il parametro Path. Inserisci un elemento o uno schema di percorso, come *.txt
o A*
. I caratteri jolly sono accettati.
Un asterisco finale (*
) nel parametro Path è opzionale. Per esempio, -Path C:\Test\Logs
o -Path C:\Test\Logs\*
. Se un asterisco finale (*
) è incluso, il comando ricorre nelle sottodirectory del parametroPath. Senza l’asterisco (*
), viene visualizzato il contenuto del parametro Path. Maggiori dettagli sono inclusi nell’esempio 5 e nella sezione Note.
Type: | String |
Posizione: | Named |
Valore predefinito: | None |
Accetta l’input della pipeline: | False |
Accetta caratteri jolly: | True |
Per ottenere una lista di file, usa il parametro File. Puoi usare il parametro Recurse conFile.
Type: | SwitchParameter |
Alias: | af |
Posizione: | Named |
Valore predefinito: | None |
Accetta input pipeline: | False |
Accetta caratteri jolly: | False |
Specifica un filtro per qualificare il parametro Path. Il FileSystemprovider è l’unico fornitore PowerShell installato che supporta i filtri. I filtri sono più efficienti di altri parametri. Il provider applica il filtro quando il cmdlet ottiene gli oggetti piuttosto che lasciare che PowerShell filtri gli oggetti dopo che sono stati recuperati. La stringa del filtro viene passata all’API.NET per enumerare i file. L’API supporta solo i caratteri jolly *
e ?
.
Type: | String |
Position: | 1 |
Valore predefinito: | Nessuno |
Accetta input pipeline: | Falso |
Accetta caratteri jolly: | True |
Di default, la cmdlet Get-ChildItem
visualizza i link simbolici alle directory trovate durante la ricorsione, ma non vi ricorre. Usate il parametro FollowSymlink per cercare le directory che hanno come obiettivo quei collegamenti simbolici. Il FollowSymlink è un parametro dinamico ed è supportato solo nel provider FileSystem.
Questo parametro è stato introdotto in PowerShell 6.0.
Type: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Accetta l’input della pipeline: | False |
Accetta caratteri jolly: | False |
Consente alla cmdlet di ottenere elementi che altrimenti non sarebbero accessibili all’utente, come file nascosti o di sistema. Il parametro Force non annulla le restrizioni di sicurezza. L’implementazione varia tra i fornitori. Per maggiori informazioni, vedi about_Providers.
Type: | SwitchParameter |
Position: | Named |
Valore predefinito: | False |
Acept pipeline input: | False |
Accetta caratteri jolly: | False |
Per ottenere solo elementi nascosti, usa il parametro Hidden o il parametro Attributes con la proprietàHidden. Per impostazione predefinita, Get-ChildItem
non visualizza gli elementi nascosti. Usa il Forceparameter per ottenere gli elementi nascosti.
Type: | SwitchParameter |
Alias: | ah, h |
Posizione: | Named |
Valore predefinito: | None |
Accetta ingresso pipeline: | False |
Accetta caratteri jolly: | False |
Specifica, come array di stringhe, uno o più elementi che questa cmdlet include nell’operazione. Il valore di questo parametro qualifica il parametro Path. Inserisci un elemento o uno schema di percorso, come"*.txt"
. I caratteri jolly sono permessi. Il parametro Include è efficace solo quando il comando include il contenuto di un elemento, come C:\Windows\*
, dove il carattere jolly specifica il contenuto della directory C:\Windows
.
Type: | String |
Position: | Named |
Valore predefinito: | None |
Accetta ingresso pipeline: | False |
Accetta caratteri jolly: | True |
Specifica un percorso verso una o più posizioni. Il valore di LiteralPath è usato esattamente come è scritto. Nessun carattere è interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiudilo tra virgolette singole. Le virgolette singole dicono a PowerShell di non interpretare alcun carattere come sequenza di escape.
Per maggiori informazioni, vedi about_Quoting_Rules.
Type: | String |
Alias: | PSPath, LP |
Position: | Nameed |
Valore predefinito: | None |
Accetta input pipeline: | True |
Accetta caratteri jolly: | False |
Ottiene solo i nomi degli elementi nella locazione. L’output è un oggetto stringa che può essere inviato lungo la pipeline ad altri comandi. I caratteri jolly sono permessi.
Type: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Accetta l’input della pipeline: | False |
Accetta caratteri jolly: | True |
Specifica un percorso per una o più posizioni. I caratteri jolly sono accettati. Il percorso predefinito è la directory corrente (.
).
Type: | String |
Position: | 0 |
Valore predefinito: | Current directory |
Accetta ingresso pipeline: | True |
Accetta caratteri jolly: | True |
Per ottenere solo elementi di sola lettura, usa il parametro ReadOnly o la proprietà Attributes parameterReadOnly.
Type: | SwitchParameter |
Alias: | ar |
Posizione: | Named |
Valore predefinito: | None |
Accetta ingresso pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Ottiene gli elementi nelle posizioni specificate e in tutti gli elementi figli delle posizioni.
Type: | SwitchParameter |
Alias: | s |
Posizione: | Named |
Valore predefinito: | False |
Accetta input pipeline: | False |
Accetta caratteri jolly: | False |
Ottiene solo file e cartelle di sistema. Per ottenere solo i file e le cartelle di sistema, usa la proprietà Systemparameter o Attributes parameter System.
Type: | SwitchParameter |
Alias: | as |
Posizione: | Named |
Valore predefinito: | None |
Accetta ingresso pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Input
Stringa
Puoi inviare una stringa che contiene un percorso a Get-ChildItem
.
Outputs
Object
Il tipo di oggetto che Get-ChildItem
restituisce è determinato dagli oggetti nel drivepath del provider.
String
Se usi il parametro Name, Get-ChildItem
restituisce i nomi degli oggetti come stringhe.
Note
-
Get-ChildItem
può essere eseguito usando qualsiasi alias incorporato,ls
,dir
egci
. Per maggiori informazioni, vedi about_Aliases. -
Get-ChildItem
non ottiene elementi nascosti per default. Per ottenere elementi nascosti, usa il Forceparameter. - Il cmdlet
Get-ChildItem
è progettato per lavorare con i dati esposti da qualsiasi fornitore. Per elencare i provider disponibili nella tua sessione, digitaGet-PSProvider
.Per maggiori informazioni, vedi about_Providers.
- about_Certificate_Provider
- about_Providers
- about_Quoting_Rules
- about_Registry_Provider
- ForEach-Object
- Get-Alias
- Get-Item
- Get-Location
- Get-Process
- Get-PSProvider
- Split-Path