Obtiene los ítems y los ítems hijos en una o más ubicaciones especificadas.
- Sintaxis
- Descripción
- Ejemplos
- Ejemplo 1: Obtener elementos hijos de un directorio del sistema de archivos
- Ejemplo 2: Obtener los nombres de los elementos hijos de un directorio
- Ejemplo 3: Obtener elementos secundarios en el directorio actual y los subdirectorios
- Ejemplo 4: Obtención de elementos secundarios mediante el parámetro Include
- Ejemplo 5: Obtención de elementos secundarios mediante el parámetro Exclude
- Ejemplo 6: Obtener las claves del registro de una colmena del registro
- Ejemplo 7: Obtener todos los certificados con autoridad de firma de código
- Ejemplo 8: Obtener elementos utilizando el parámetro Depth
- Ejemplo 9: Obtención de información de enlaces duros
- Ejemplo 10: Salida para sistemas operativos que no son Windows
- Parámetros
- Entradas
- Salidas
- Notas
Sintaxis
Get-ChildItem <string>] <string>] >] >] >]
Get-ChildItem <string>] -LiteralPath <string> >] >] >]
Descripción
El cmdlet Get-ChildItem
obtiene los ítems en una o más ubicaciones especificadas. Si el elemento es un contenedor, obtiene los elementos dentro del contenedor, conocidos como elementos hijos. Puede utilizar el parámetro Recurse para obtener elementos en todos los contenedores secundarios y utilizar el parámetro Depth para limitar el número de niveles a los que recurrir.
Get-ChildItem
no muestra directorios vacíos. Cuando un comando Get-ChildItem
incluye los parámetrosDepth o Recurse, los directorios vacíos no se incluyen en la salida.
Las ubicaciones están expuestas a Get-ChildItem
por los proveedores de PowerShell. Una ubicación puede ser un directorio del sistema de archivos, una colmena del registro o un almacén de certificados. Para obtener más información, consulte about_Providers.
Ejemplos
Ejemplo 1: Obtener elementos hijos de un directorio del sistema de archivos
Este ejemplo obtiene los elementos hijos de un directorio del sistema de archivos. Se muestran los nombres de los archivos y los nombres de los subdirectorios. Para las ubicaciones vacías, el comando no devuelve ninguna salida y regresa al prompt dePowerShell.
El cmdlet Get-ChildItem
utiliza el parámetro Path para especificar el directorio C:\Test
.Get-ChildItem
muestra los archivos y directorios en la consola de 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
Por defecto, Get-ChildItem
muestra el modo (Attributes), LastWriteTime, el tamaño del archivo (Length) y el Nombre del elemento. Las letras de la propiedad Mode pueden interpretarse como sigue:
-
l
(enlace) -
d
(directorio) -
a
(archivo) -
r
(sólo lectura) -
h
(oculto) -
s
(sistema).
Para obtener más información sobre los indicadores de modo, consulteabout_Filesystem_Provider.
Ejemplo 2: Obtener los nombres de los elementos hijos de un directorio
Este ejemplo enumera sólo los nombres de los elementos de un directorio.
El cmdlet Get-ChildItem
utiliza el parámetro Path para especificar el directorio C:\Test
. El parámetroName devuelve sólo los nombres de archivos o directorios de la ruta especificada.
Get-ChildItem -Path C:\Test -NameLogsanotherfile.txtCommand.txtCreateTestFile.ps1ReadOnlyFile.txt
Ejemplo 3: Obtener elementos secundarios en el directorio actual y los subdirectorios
Este ejemplo muestra los archivos .txt que se encuentran en el directorio actual y sus subdirectorios.
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
El cmdlet Get-ChildItem
utiliza el parámetro Path para especificar C:\Test\*.txt
. Path utiliza el comodínasterisk (*
) para especificar todos los archivos con la extensión de nombre de archivo .txt
. El parámetro Recurse busca en el directorio Path sus subdirectorios, como se muestra en los encabezados Directory:. El parámetro Force muestra los archivos ocultos, como hiddenfile.txt
, que tienen un modo h.
Ejemplo 4: Obtención de elementos secundarios mediante el parámetro Include
En este ejemplo Get-ChildItem
utiliza el parámetro Include para encontrar elementos específicos del directorio especificado por el parámetro 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
El cmdlet Get-ChildItem
utiliza el parámetro Path para especificar el directorio C:\Test. El parámetroPath incluye un comodín de asterisco final (*
) para especificar el contenido del directorio.El parámetro Include utiliza un comodín de asterisco (*
) para especificar todos los archivos con la extensión de nombre de archivo .txt.
Cuando se utiliza el parámetro Include, el parámetro Path necesita un comodín de asterisco final (*
) para especificar el contenido del directorio. Por ejemplo, -Path C:\Test\*
.
- Si se añade el parámetro Recurse al comando, el asterisco final (
*
) en el parámetro Path es opcional. El parámetro Recurse obtiene elementos del directorio Path y sus subdirectorios. Por ejemplo,-Path C:\Test\ -Recurse -Include *.txt
- Si no se incluye un asterisco final (
*
) en el parámetro Path, el comando no devuelve ninguna salida y regresa al prompt de PowerShell. Por ejemplo,-Path C:\Test\
.
Ejemplo 5: Obtención de elementos secundarios mediante el parámetro Exclude
La salida del ejemplo muestra el contenido del directorio C:\Test\Logs. La salida es una referencia para los otros comandos que utilizan los parámetros Exclude y 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
El cmdlet Get-ChildItem
utiliza el parámetro Path para especificar el directorio C:\Test\Logs
.El parámetro Exclude utiliza el comodín asterisco (*
) para especificar que cualquier archivo o directorio que empiece por A o por a sea excluido de la salida.
Cuando se utiliza el parámetro Exclude, un asterisco final (*
) en el parámetro Path es opcional. Por ejemplo, -Path C:\Test\Logs
o -Path C:\Test\Logs\*
.
- Si no se incluye un asterisco final (
*
) en el parámetro Path, se muestra el contenido del parámetro Path. Las excepciones son los nombres de archivos o subdirectorios que coinciden con el valor del parámetroExclude. - Si se incluye un asterisco final (
*
) en el parámetro Path, el comando busca en los subdirectorios del parámetroPath. Las excepciones son los nombres de archivos o subdirectorios que coinciden con el valor del parámetro Exclude. - Si se agrega el parámetro Recurse al comando, la salida de la recursión es la misma independientemente de que el parámetro Path incluya un asterisco al final (
*
).
Ejemplo 6: Obtener las claves del registro de una colmena del registro
Este ejemplo obtiene todas las claves del registro de HKEY_LOCAL_MACHINE\HARDWARE
.
Get-ChildItem
utiliza el parámetro Path para especificar la clave del registro HKLM:\HARDWARE
. La ruta y el nivel superior de las claves del registro se muestran en la consola de PowerShell.
Para obtener más información, consulte 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
El primer comando muestra el contenido de la clave del registro HKLM:\HARDWARE
. El parámetro Exclude indica a Get-ChildItem
que no devuelva ninguna subclave que empiece por D*
. Actualmente, el parámetro Exclude sólo funciona en las subclaves, no en las propiedades de los elementos.
Ejemplo 7: Obtener todos los certificados con autoridad de firma de código
Este ejemplo obtiene cada certificado en la unidad Cert: de PowerShell que tiene autoridad de firma de código.
El cmdlet Get-ChildItem
utiliza el parámetro Path para especificar el proveedor Cert:. El parámetroRecurse busca en el directorio especificado por Path y sus subdirectorios. El parámetroCodeSigningCert obtiene sólo los certificados que tienen autoridad de firma de código.
Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert
Para obtener más información sobre el proveedor de certificados y la unidad Cert:, consulte about_Certificate_Provider.
Ejemplo 8: Obtener elementos utilizando el parámetro Depth
Este ejemplo muestra los elementos de un directorio y sus subdirectorios. El parámetro Depth determina el número de niveles de subdirectorios a incluir en la recursión. Los directorios vacíos se excluyen de la salida.
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
El cmdlet Get-ChildItem
utiliza el parámetro Path para especificar C:\NParent. El parámetro Depth especifica dos niveles de recursión. Get-ChildItem
muestra el contenido del directorio especificado por el parámetro Path y los dos niveles de subdirectorios.
Ejemplo 9: Obtención de información de enlaces duros
En PowerShell 6.2, se añadió una vista alternativa para obtener información de enlaces duros.
Get-ChildItem -Path C:\PathContainingHardLink | Format-Table -View childrenWithHardLink
Ejemplo 10: Salida para sistemas operativos que no son Windows
En PowerShell 7.1 en sistemas Unix, el Get-ChildItem
proporciona una salida similar a la de 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
Las nuevas propiedades que ahora forman parte de la salida son:
- UnixMode son los permisos del archivo tal y como se representan en un sistema Unix
- User es el propietario del archivo
- Group es el propietario del grupo
- Size es el tamaño del archivo o directorio tal y como se representa en un sistema Unix
Nota
Esta característica pasó de experimental a principal en PowerShell 7.1.
Parámetros
Obtiene archivos y carpetas con los atributos especificados. Este parámetro admite todos los atributos y le permite especificar combinaciones complejas de atributos.
Por ejemplo, para obtener archivos que no sean del sistema (no directorios) y que estén cifrados o comprimidos, escriba:
Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed
Para encontrar archivos y carpetas con atributos de uso común, utilice el parámetro Atributos. O bien, losparámetros Directorio, Archivo, Oculto, Sólo lectura y Sistema.
El parámetro Atributos admite las siguientes propiedades:
- Archivo
- Comprimido
- Dispositivo
- Directorio
- Encriptado
- Oculto
- IntegrityStream
- Normal
- NoScrubData
- NotContentIndexed
- Offline
- ReadOnly
- ReparsePoint
- SparseFile
- System
- Temporary
Para una descripción de estos atributos, ver la Enumeración FileAttributes.
Para combinar atributos, utilice los siguientes operadores:
-
!
(NOT) -
+
(AND) -
,
(OR)
No utilice espacios entre un operador y su atributo. Se aceptan espacios después de las comas.
Para los atributos comunes, utilice las siguientes abreviaturas:
-
D
(Directorio) -
H
(Oculto) -
R
(Sólo lectura) -
S
(Sistema)
Tipo: | FlagsExpression<T> |
Valores aceptados: | Archivo, Comprimido, Dispositivo, Directorio, Cifrado, Oculto, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary |
Position: | Named |
Valor por defecto: | Ninguna |
Aceptar entrada de tuberías: | Falso |
Aceptar caracteres comodín: | Falso |
Este parámetro se añadió en PowerShell 5.0 y permite controlar la profundidad de la recursión. Por defecto, Get-ChildItem
muestra el contenido del directorio padre. El parámetro Depth determina el número de niveles de subdirectorios que se incluyen en la recursión y muestra los contenidos.
Por ejemplo, Depth 2
incluye el directorio del parámetro Path, el primer nivel de subdirectorios y el segundo nivel de subdirectorios. Por defecto, los nombres de los directorios y los nombres de los archivos se incluyen en la salida.
Nota
En un equipo Windows desde PowerShell o cmd.exe, se puede mostrar una vista gráfica de la estructura de un directorio con el comando tree.com.
Tipo: | UInt32 |
Posición: | Nombrado |
Valor por defecto: | Ninguna |
Acepta la entrada de la tubería: | Falso |
Aceptar caracteres comodín: | Falso |
Para obtener una lista de directorios, utilice el parámetro Directorio o el parámetro Atributos con la propiedad Directorio. Puede utilizar el parámetro Recurse con Directory.
Tipo: | ParámetroSwitch |
Aliases: | ad, d |
Posición: | Nombrado |
Valor por defecto: | Ninguno |
Acepta entrada de tuberías: | Falso |
Aceptar caracteres comodín: | Falso |
Especifica, como una matriz de cadenas, una propiedad o propiedades que este cmdlet excluye de la operación.El valor de este parámetro califica el parámetro Path. Introduzca un elemento o patrón de ruta, como *.txt
o A*
. Se aceptan caracteres comodín.
Un asterisco final (*
) en el parámetro Path es opcional. Por ejemplo, -Path C:\Test\Logs
o -Path C:\Test\Logs\*
. Si se incluye un asterisco final (*
), el comando busca en los subdirectorios del parámetroPath. Sin el asterisco (*
), se muestra el contenido del parámetroPath. Se incluyen más detalles en el Ejemplo 5 y en la sección Notas.
Tipo: | Cadena |
Posición: | Nombre |
Valor por defecto: | Ninguno |
Acepta la entrada de la tubería: | Falso |
Aceptar caracteres comodín: | Verdadero |
Para obtener una lista de archivos, utilice el parámetro Archivo. Puede utilizar el parámetro Recurse conFile.
Tipo: | Parámetro de conmutación |
Aliases: | af |
Posición: | Nombre |
Valor por defecto: | Ninguna |
Acepta entrada de canalización: | Falso |
Acepta caracteres comodín: | Falso |
Especifica un filtro para calificar el parámetro Path. El proveedor FileSystem es el único proveedor PowerShell instalado que admite filtros. Los filtros son más eficaces que otros parámetros. El proveedor aplica el filtro cuando el cmdlet obtiene los objetos en lugar de hacer que PowerShell filtre los objetos después de recuperarlos. La cadena de filtros se pasa a la API de .NET para enumerar los archivos. La API sólo admite los comodines *
y ?
.
Tipo: | Cadena |
Posición: | 1 |
Valor por defecto: | Ninguna |
Aceptar entrada de tuberías: | Falso |
Aceptar caracteres comodín: | True |
Por defecto, el cmdlet Get-ChildItem
muestra los enlaces simbólicos a los directorios encontrados durante la recursión, pero no recurre a ellos. Utilice el parámetro FollowSymlink para buscar los directorios que apuntan a esos enlaces simbólicos. El parámetro FollowSymlink es un parámetro dinámico y sólo se admite en el proveedor FileSystem.
Este parámetro se introdujo en PowerShell 6.0.
Tipo: | Parámetro de conmutación |
Posición: | Nombrado |
Valor por defecto: | Ninguna |
Acepta la entrada de la tubería: | Falso |
Aceptar caracteres comodín: | Falso |
Permite que el cmdlet obtenga elementos a los que, de otro modo, el usuario no puede acceder, como archivos ocultos o del sistema. El parámetro Force no anula las restricciones de seguridad. La implementación varía entre los proveedores. Para obtener más información, consulte about_Providers.
Tipo: | Parámetro de conmutación |
Posición: | Nombre |
Valor por defecto: | Falso |
Aceptar entrada de tuberías: | False |
Acepta caracteres comodín: | False |
Para obtener sólo los elementos ocultos, utilice el parámetro Hidden o el parámetro Attributes con la propiedadHidden. Por defecto, Get-ChildItem
no muestra los elementos ocultos. Utilice el Forceparameter para obtener los elementos ocultos.
Tipo: | ParámetroSwitch |
Alias: | ah, h |
Posición: | Nombrado |
Valor por defecto: | Ninguno |
Acepta entrada de tuberías: | Falso |
Aceptar caracteres comodín: | Falso |
Especifica, como matriz de cadenas, un elemento o elementos que este cmdlet incluye en la operación. El valor de este parámetro califica el parámetro Path. Introduzca un elemento o patrón de ruta, como"*.txt"
. Se permiten los caracteres comodín. El parámetro Include sólo es efectivo cuando el comando incluye el contenido de un elemento, como C:\Windows\*
, donde el carácter comodín especifica el contenido del directorio C:\Windows
.
Tipo: | Cadena |
Posición: | Nombrada |
Valor por defecto: | Ninguna |
Aceptar entrada de tubería: | Falso |
Acepta caracteres comodín: | Verdadero |
Especifica una ruta de acceso a una o más ubicaciones. El valor de LiteralPath se utiliza exactamente como está escrito. No se interpretan caracteres como comodines. Si la ruta incluye caracteres de escape, enciérrela entre comillas simples. Las comillas simples le dicen a PowerShell que no interprete ningún carácter como secuencia de escape.
Para más información, vea about_Quoting_Rules.
Tipo: | Cadena |
Alias: | PSPath, LP |
Posición: | Nombre |
Valor por defecto: | Ninguno |
Acepta entrada de canalización: | Verdadero |
Acepta caracteres comodín: | Falso |
Obtiene sólo los nombres de los elementos de la posición. La salida es un objeto de cadena que puede enviarse por la tubería a otros comandos. Se permiten los comodines.
Tipo: | Parámetro de conmutación |
Posición: | Nombre |
Valor por defecto: | Ninguna |
Acepta la entrada de la tubería: | Falso |
Acepta caracteres comodín: | Verdadero |
Especifica una ruta a una o más ubicaciones. Se aceptan comodines. La ubicación por defecto es el directorio actual (.
).
Tipo: | Cadena |
Posición: | 0 |
Valor por defecto: | Directorio actual |
Acepta entrada de tuberías: | Verdadero |
Aceptar caracteres comodín: | Verdadero |
Para obtener sólo elementos de sólo lectura, utilice el parámetro ReadOnly o la propiedad Attributes parameterReadOnly.
Tipo: | ParámetroSwitch |
Alias: | ar |
Posición: | Nombrado |
Valor por defecto: | Ninguno |
Acepta entrada de tuberías: | Falso |
Acepta caracteres comodín: | Falso |
Obtiene los elementos en las ubicaciones especificadas y en todos los elementos hijos de las ubicaciones.
Tipo: | Parámetro de conmutación |
Alias: | s |
Posición: | Nombrado |
Valor por defecto: | Falso |
Acepta entrada de canalización: | Falso |
Acepta caracteres comodín: | Falso |
Obtiene sólo archivos y directorios del sistema. Para obtener sólo los archivos y carpetas del sistema, utilice la propiedad Systemparameter o Attributes System.
Tipo: | ParámetroSwitch |
Alias: | como |
Posición: | Nombrado |
Valor por defecto: | Ninguno |
Acepta entrada de tuberías: | Falso |
Aceptar caracteres comodín: | Falso |
Entradas
Cadena
Puede canalizar una cadena que contenga una ruta a Get-ChildItem
.
Salidas
Objeto
El tipo de objeto que devuelve Get-ChildItem
está determinado por los objetos de la ruta del proveedor.
Cadena
Si se utiliza el parámetro Name, Get-ChildItem
devuelve los nombres de los objetos como cadenas.
Notas
-
Get-ChildItem
puede ejecutarse utilizando cualquiera de los alias incorporados,ls
,dir
ygci
. Para obtener más información, consulte about_Aliases. -
Get-ChildItem
no obtiene elementos ocultos por defecto. Para obtener los elementos ocultos, utilice el Forceparameter. - El cmdlet
Get-ChildItem
está diseñado para trabajar con los datos expuestos por cualquier proveedor. Para enumerar losproveedores disponibles en su sesión, escribaGet-PSProvider
.Para obtener más información, consulte about_Providers.
- sobre_proveedor_de_certificados
- sobre_proveedores
- sobre_reglas_de_cotización
- sobre_proveedor_de_registro
- ParaCada-Object
- Get-Alias
- Get-Item
- Get-Location
- Get-Process
- Get-PSProvider
- Split-Path