Compartilhar via


Get-ChildItem

Obtém os itens e itens filho em um ou mais locais especificados.

Sintaxe

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

Description

O cmdlet Get-ChildItem obtém os itens em um ou mais locais especificados. Se o item for um contêiner, ele obterá os itens dentro do contêiner, conhecidos como itens filho. Você pode usar o parâmetro Recurse para obter itens em todos os contêineres filho e usar o parâmetro Depth para limitar o número de níveis a serem recursos.

Get-ChildItem não exibe diretórios vazios. Quando um comando inclui os parâmetros de Profundidade ou Recurse, os diretórios vazios não são incluídos na saída.

Os locais são expostos a Get-ChildItem por provedores do PowerShell. Um local pode ser um diretório do sistema de arquivos, hive do Registro ou um repositório de certificados. Para obter mais informações, consulte about_Providers.

Exemplos

Exemplo 1: Obter itens filho de um diretório do sistema de arquivos

Este exemplo obtém os itens filho de um diretório do sistema de arquivos. Os nomes de arquivo e os nomes de subdiretório são exibidos. Para locais vazios, o comando não retorna nenhuma saída e retorna ao prompt do PowerShell.

O cmdlet Get-ChildItem usa o parâmetro Path para especificar o diretório C:\Test. Get-ChildItem exibe os arquivos e diretórios no console do 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

Por padrão, lista o modo (Attributes), LastWriteTime, o tamanho do arquivo (Length) e o de Nome do do item. As letras na propriedade modo podem ser intercaladas da seguinte maneira:

  • l (link)
  • d (diretório)
  • a (arquivo morto)
  • r (somente leitura)
  • h (oculto)
  • s (sistema).

Para obter mais informações sobre os sinalizadores de modo, consulte about_Filesystem_Provider.

Exemplo 2: Obter nomes de itens filho em um diretório

Esse comando lista apenas os nomes dos itens em um diretório.

O cmdlet Get-ChildItem usa o parâmetro Path para especificar o diretório C:\Test. O parâmetro Name retorna apenas os nomes de arquivo ou diretório do caminho especificado.

Get-ChildItem -Path C:\Test -Name

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

Exemplo 3: Obter itens filho no diretório e subdiretórios atuais

Este exemplo exibe .txt arquivos localizados no diretório atual e seus subdiretórios.

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

O cmdlet Get-ChildItem usa o parâmetro Path para especificar C:\Test\*.txt. Path usa o curinga asterisco (*) para especificar todos os arquivos com a extensão de nome de arquivo .txt. O parâmetro Recurse pesquisa o diretório Path seus subdiretórios, conforme mostrado nos títulos Directory:. O parâmetro Force exibe arquivos ocultos, como hiddenfile.txt que têm um modo de h.

Exemplo 4: Obter itens filho usando o parâmetro Include

Neste exemplo, Get-ChildItem usa o parâmetro Include para localizar itens específicos do diretório especificado pelo parâmetro 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

O cmdlet Get-ChildItem usa o parâmetro Path para especificar o diretório C:\Test. O parâmetro Path inclui um curinga de asterisco à direita (*) para especificar o conteúdo do diretório. O parâmetro Include usa um curinga asterisco (*) para especificar todos os arquivos com a extensão de nome de arquivo .txt.

Quando o parâmetro Incluir é usado, o parâmetro Path precisa de um curinga de asterisco à direita (*) para especificar o conteúdo do diretório. Por exemplo, -Path C:\Test\*.

  • Se o parâmetro Recurse for adicionado ao comando, o asterisco à direita () no parâmetro caminho será opcional. O parâmetro Recurse do obtém itens do diretório caminho e seus subdiretórios. Por exemplo, -Path C:\Test\ -Recurse -Include *.txt
  • Se um asterisco à direita (*) não estiver incluído no parâmetro Path, o comando não retornará nenhuma saída e retornará ao prompt do PowerShell. Por exemplo, -Path C:\Test\.

Exemplo 5: Obter itens filho usando o parâmetro Excluir

A saída do exemplo mostra o conteúdo do diretório C:\Test\Logs. A saída é uma referência para os outros comandos que usam os parâmetros Excluir 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

O cmdlet Get-ChildItem usa o parâmetro Path para especificar o diretório C:\Test\Logs. O parâmetro Excluir usa o curinga asterisco (*) para especificar arquivos ou diretórios que começam com um ou um são excluídos da saída.

Quando o parâmetro Excluir é usado, um asterisco à direita () no parâmetro caminho é opcional. Por exemplo, -Path C:\Test\Logs ou -Path C:\Test\Logs\*.

  • Se um asterisco à direita () não estiver incluído no parâmetro caminho , o conteúdo do parâmetro caminho será exibido. As exceções são nomes de arquivo ou nomes de subdiretório que correspondem ao valor do parâmetro Excluir.
  • Se um asterisco à direita (*) for incluído no parâmetro Path, o comando será recursado nos subdiretórios do parâmetro Path. As exceções são nomes de arquivo ou nomes de subdiretório que correspondem ao valor do parâmetro Excluir.
  • Se o parâmetro Recurse for adicionado ao comando, a saída de recursão será a mesma se o parâmetro Path incluir um asterisco à direita ().

Exemplo 6: Obter as chaves do Registro de um hive do Registro

Esse comando obtém todas as chaves do Registro da chave do Registro HKEY_LOCAL_MACHINE\HARDWARE.

Get-ChildItem usa o parâmetro Path para especificar a chave do Registro HKLM:\HARDWARE. O caminho do hive e o nível superior das chaves do Registro são exibidos no console do PowerShell.

Para obter mais informações, consulte 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

O primeiro comando mostra o conteúdo da chave do Registro HKLM:\HARDWARE. O parâmetro Excluir informa Get-ChildItem para não retornar nenhuma subchave que comece com D*. Atualmente, o parâmetro Excluir funciona apenas em subchaves, não em propriedades de item.

Exemplo 7: Obter todos os certificados com autoridade de assinatura de código

Esse comando obtém cada certificado no PowerShell Cert: unidade que tem autoridade de assinatura de código.

O cmdlet Get-ChildItem usa o parâmetro Path para especificar o provedor Cert:. O parâmetro Recurse pesquisa o diretório especificado por Path e seus subdiretórios. O parâmetro CodeSigningCert obtém apenas certificados que têm autoridade de assinatura de código.

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

Para obter mais informações sobre o provedor de certificados e a unidade Cert: , consulte about_Certificate_Provider.

Exemplo 8: Obter itens usando o parâmetro Depth

Esse comando exibe os itens em um diretório e seus subdiretórios. O parâmetro Depth determina o número de níveis de subdiretório a serem incluídos na recursão. Diretórios vazios são excluídos da saída.

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

O cmdlet Get-ChildItem usa o parâmetro Path para especificar C:\Parent. O parâmetro profundidade de especifica dois níveis de recursão. Get-ChildItem exibe o conteúdo do diretório especificado pelo parâmetro Path e os dois níveis de subdiretórios.

Parâmetros

-Attributes

Obtém arquivos e pastas com os atributos especificados. Esse parâmetro dá suporte a todos os atributos e permite especificar combinações complexas de atributos.

Por exemplo, para obter arquivos que não são do sistema (não diretórios) criptografados ou compactados, digite:

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

Para localizar arquivos e pastas com atributos comumente usados, use o parâmetro Attributes. Ou os parâmetros Directory, File, Hidden, ReadOnlye System.

O parâmetro atributos dá suporte às seguintes propriedades:

  • de Arquivo
  • compactado
  • do dispositivo
  • do Diretório
  • Criptografado
  • Oculta
  • IntegrityStream
  • Normal
  • NoScrubData
  • NotContentIndexed
  • offline
  • ReadOnly
  • do ReparsePoint
  • SparseFile
  • System
  • temporária

Para obter uma descrição desses atributos, consulte ode Enumeração FileAttributes.

Para combinar atributos, use os seguintes operadores:

  • ! (NÃO)
  • + (AND)
  • , (OR)

Não use espaços entre um operador e seu atributo. Espaços são aceitos após vírgulas.

Para atributos comuns, use as seguintes abreviações:

  • D (Diretório)
  • H (Oculto)
  • R (somente leitura)
  • S (Sistema)
Tipo:FlagsExpression<T>[FileAttributes]
Valores aceitos:Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Depth

Esse parâmetro foi adicionado ao PowerShell 5.0 e permite controlar a profundidade da recursão. Por padrão, Get-ChildItem exibe o conteúdo do diretório pai. O parâmetro Depth determina o número de níveis de subdiretório incluídos na recursão e exibe o conteúdo.

Por exemplo, Depth 2 inclui o diretório do parâmetro Path, o primeiro nível de subdiretórios e o segundo nível de subdiretórios. Por padrão, nomes de diretório e nomes de arquivo são incluídos na saída.

Nota

Em um computador Windows do PowerShell ou cmd.exe, você pode exibir uma exibição gráfica de uma estrutura de diretório com o comando tree.com.

Tipo:UInt32
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Directory

Para obter uma lista de diretórios, use o parâmetro Directory ou o parâmetro atributos com a propriedade Directory. Você pode usar o parâmetro Recurse comde Diretório .

Tipo:SwitchParameter
Aliases:ad, d
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Exclude

Especifica, como uma matriz de cadeia de caracteres, uma propriedade ou propriedade que este cmdlet exclui da operação. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como *.txt ou A*. Caracteres curinga são aceitos.

Um asterisco à direita () no parâmetro caminho é opcional. Por exemplo, -Path C:\Test\Logs ou -Path C:\Test\Logs\*. Se um asterisco à direita () for incluído, o comando será recursado nos subdiretórios do parâmetro path do . Sem o asterisco (*), o conteúdo do parâmetro Path é exibido. Mais detalhes estão incluídos no Exemplo 5 e na seção Anotações.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-File

Para obter uma lista de arquivos, use o parâmetro File. Você pode usar o parâmetro Recurse com File.

Tipo:SwitchParameter
Aliases:af
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Filter

Especifica um filtro para qualificar o parâmetro Path. O provedor FileSystem é o único provedor do PowerShell instalado que dá suporte ao uso de filtros. Os filtros são mais eficientes do que outros parâmetros, pois o provedor os aplica quando o cmdlet obtém os objetos em vez de ter o PowerShell filtrar os objetos depois que eles são recuperados. A cadeia de caracteres de filtro é passada para a API do .NET para enumerar arquivos. Essa API só dá suporte a caracteres curingas * e ?.

Tipo:String
Cargo:1
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-Force

Permite que o cmdlet obtenha itens que, de outra forma, não podem ser acessados pelo usuário, como arquivos ocultos ou do sistema. O parâmetro Force não substitui restrições de segurança. A implementação varia entre os provedores. Para obter mais informações, consulte about_Providers.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Hidden

Para obter apenas itens ocultos, use o parâmetro Hidden ou o parâmetro atributos com a propriedade Hidden. Por padrão, Get-ChildItem não exibe itens ocultos. Use o parâmetro Force para obter itens ocultos.

Tipo:SwitchParameter
Aliases:ah, h
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Include

Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet inclui na operação. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como "*.txt". Caracteres curinga são permitidos. O parâmetro Include só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do diretório C:\Windows.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-LiteralPath

Especifica um caminho para um ou mais locais. O valor de literalPath é usado exatamente como é digitado. Nenhum caractere é interpretado como curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. As aspas simples dizem ao PowerShell para não interpretar nenhum caractere como sequências de escape.

Para obter mais informações, consulte about_Quoting_Rules.

Tipo:String[]
Aliases:PSPath
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Name

Obtém apenas os nomes dos itens no local. A saída é um objeto de cadeia de caracteres que pode ser enviado pelo pipeline para outros comandos. Curingas são permitidos.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:True

-Path

Especifica um caminho para um ou mais locais. Curingas são aceitos. O local padrão é o diretório atual (.).

Tipo:String[]
Cargo:0
Valor padrão:Current directory
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:True

-ReadOnly

Para obter apenas itens somente leitura, use o parâmetro ReadOnly ou o parâmetro atributos propriedade ReadOnly.

Tipo:SwitchParameter
Aliases:ar
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Recurse

Obtém os itens nos locais especificados e em todos os itens filho dos locais.

Tipo:SwitchParameter
Aliases:s
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-System

Obtém apenas arquivos e diretórios do sistema. Para obter apenas arquivos e pastas do sistema, use o parâmetro System ou Attributespropriedade System.

Tipo:SwitchParameter
Aliases:as
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-UseTransaction

Inclui o comando na transação ativa. Esse parâmetro só é válido quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.

Tipo:SwitchParameter
Aliases:usetx
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

String

Você pode canalizar uma cadeia de caracteres que contém um caminho para Get-ChildItem.

Saídas

Object

O tipo de objeto que Get-ChildItem retorna é determinado pelos objetos no caminho da unidade do provedor.

String

Se você usar o parâmetro Name, Get-ChildItem retornará os nomes de objeto como cadeias de caracteres.

Observações

  • Você pode consultar Get-ChildItem por seus aliases internos, ls, dire gci. Para obter mais informações, consulte about_Aliases.
  • Get-ChildItem não obtém itens ocultos por padrão. Para obter itens ocultos, use o parâmetro Force.
  • O cmdlet Get-ChildItem foi projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis na sessão, digite Get-PSProvider. Para obter mais informações, consulte about_Providers.