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,
-
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âmetroRecurse obtém itens do diretórioPath 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 (-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 *
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
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.
Notas
- Você pode se referir a
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 em sua sessão, digiteGet-PSProvider
. Para obter mais informações, consulte about_Providers.