Get-ChildItem

Módulo: Microsoft.PowerShell.Management

Obtiene los ítems y los ítems hijos en una o más ubicaciones especificadas.

Sintaxis

Get-ChildItem <string>] <string>] >] >] >] 
Get-ChildItem <string>] -LiteralPath <string> >] >] >] 

Descripción

El cmdlet Get-ChildItemobtiene 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-ChildItemutiliza 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

-Atributos

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

Profundidad

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
Directorio

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

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
Archivo

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
Filtro

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

-FollowSymlink

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
Forzar

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
Ocultos

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
Incluir

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
LiteralPath

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

Nombre

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
Ruta

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
Sólo lectura

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
Recurrir

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

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-ChildItempuede ejecutarse utilizando cualquiera de los alias incorporados, ls, dir y gci. 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, escriba Get-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

Deja una respuesta

Tu dirección de correo electrónico no será publicada.