Get-ChildItem

Modulo: Microsoft.PowerShell.Management

Riceve gli elementi e gli elementi figli in una o più posizioni specificate.

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

-Attributi

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

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

-Directory

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

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\Logso -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
-File

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

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

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

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

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

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

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

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

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

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

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

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 e gci. 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, digita Get-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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.