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
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,
-
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 caminhoserá opcional. O parâmetro Recurse do obtém itens do diretório 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 -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 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
- 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
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
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 (-Path C:\Test\Logs
ou -Path C:\Test\Logs\*
. Se um asterisco à direita (*
), 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 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
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
Você pode canalizar uma cadeia de caracteres que contém um caminho para Get-ChildItem
.
Saídas
O tipo de objeto que Get-ChildItem
retorna é determinado pelos objetos no caminho da unidade do provedor.
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
,dir
egci
. 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, digiteGet-PSProvider
. Para obter mais informações, consulte about_Providers.