Partilhar 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 receberá 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 recorrentes.

Get-ChildItem não exibe diretórios vazios. Quando um comando Get-ChildItem inclui os parâmetros Depth ou Recurse, 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, uma seção do Registro ou um armazenamento 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 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 (Atributos), LastWriteTime, o tamanho do arquivo (Length) e o Nome do do item. As letras na propriedade do Modo podem ser interligadas da seguinte forma:

  • l (link)
  • d (diretório)
  • a (arquivo)
  • 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

Este 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 somente 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 Path diretório 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 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 Include é usado, o parâmetro Path precisa de um curinga 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 Path será opcional. O parâmetro Recurse obtém itens do diretório Path 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 Exclude

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

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

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

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

Exemplo 6: Obter as chaves do Registro de uma seção do Registro

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

Get-ChildItem usa o parâmetro Path para especificar a chave do Registro HKLM:\HARDWARE. O caminho da colmeia 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 HKLM:\HARDWARE chave do Registro. O parâmetro Exclude informa Get-ChildItem para não retornar nenhuma subchave que comece com D*. Atualmente, o parâmetro Exclude só funciona em subchaves, não em propriedades de item.

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

Este 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 certificado e a unidade Cert:, consulte about_Certificate_Provider.

Exemplo 8: Obter itens usando o parâmetro Depth

Este 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 Depth 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. Este parâmetro suporta todos os atributos e permite especificar combinações complexas de atributos.

Por exemplo, para obter ficheiros que não sejam do sistema (não diretórios) encriptados ou comprimidos, escreva:

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 Attributes suporta as seguintes propriedades:

  • Arquivo
  • comprimido
  • dispositivo
  • Diretório
  • criptografados
  • escondido
  • IntegrityStream
  • Normal
  • NoScrubData
  • NotContentIndexed
  • offline
  • ReadOnly
  • ReparsePoint
  • SparseFile
  • Sistema
  • Temporário

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

Para combinar atributos, use os seguintes operadores:

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

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

Para atributos comuns, use as seguintes abreviaturas:

  • D (Diretório)
  • H (Escondido)
  • R (somente leitura)
  • S (Sistema)
Tipo:FlagsExpression<T>[FileAttributes]
Valores aceites:Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Depth

Esse parâmetro foi adicionado no 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.

Observação

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

Tipo:UInt32
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Directory

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

Tipo:SwitchParameter
Aliases:ad, d
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Exclude

Especifica, como uma matriz de cadeia de caracteres, uma propriedade ou propriedade que esse 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 Path é opcional. Por exemplo, -Path C:\Test\Logs ou -Path C:\Test\Logs\*. Se um asterisco à direita (*) for incluído, o comando recorrerá nos subdiretórios do Path parâmetro. Sem o asterisco (*), o conteúdo do parâmetro Path é exibido. Mais detalhes estão incluídos no Exemplo 5 e na seção Notas.

Tipo:String[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Filter

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

Tipo:String
Position:1
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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 as restrições de segurança. A implementação varia entre os fornecedores. Para obter mais informações, consulte about_Providers.

Tipo:SwitchParameter
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Hidden

Para obter apenas itens ocultos, use o parâmetro Hidden ou o parâmetro Attributes 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
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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ó é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*, onde o caractere curinga especifica o conteúdo do diretório C:\Windows.

Tipo:String[]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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. 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
Position:Named
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-Name

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

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:True

-Path

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

Tipo:String[]
Position:0
Default value:Current directory
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:True

-ReadOnly

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

Tipo:SwitchParameter
Aliases:ar
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Recurse

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

Tipo:SwitchParameter
Aliases:s
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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 parâmetro Attributespropriedade System.

Tipo:SwitchParameter
Aliases:as
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-UseTransaction

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

Tipo:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais: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.

Notas

  • Você pode se referir a 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 em sua sessão, digite Get-PSProvider. Para obter mais informações, consulte about_Providers.