Filtrar archivos y carpetas con PowerShell
-
Filtrar archivos usando el cmdlet
Get-ChildItem
en PowerShell -
El alias
Get-ChildItem
-
Obtenga todos los archivos dentro de los subdirectorios usando el cmdlet
Get-ChildItem
en PowerShell -
Filtrar archivos con condiciones específicas utilizando el cmdlet
Get-ChildItem
en PowerShell
Habrá situaciones en las que necesitemos verificar si existen archivos dentro de una ubicación o directorio específico. Aunque podemos usar el comando heredado dir
, no sería suficiente exportar solo archivos específicos. Podemos usar el cmdlet Get-ChildItem
de Windows PowerShell para este caso de uso.
Este artículo discutirá el cmdlet de PowerShell Get-ChildItem
que usaremos para obtener todos los elementos dentro del directorio y utilizar sus parámetros de cambio de filtro.
El cmdlet Get-ChildItem
de Windows PowerShell obtiene los elementos secundarios en una ubicación o directorio específico. Por ejemplo, la ubicación especificada en el cmdlet puede ser el directorio del sistema de archivos, el registro o el almacén de certificados. Además, los elementos secundarios mencionados pueden ser otro directorio, subcarpeta o archivo.
Get-ChildItem -Path C:\Temp
En el comando anterior, Get-ChildItem
obtiene elementos secundarios de la ruta especificada mediante el parámetro -Path
.
Cuando se ejecuta el cmdlet Get-ChildItem, muestra archivos, directorios con sus propiedades Mode
, LastWriteTime
, Length
(tamaño de archivo) y Name
en la consola de PowerShell.
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----l 18/01/2022 8:52 pm WindowsPowerShell
d----l 20/12/2021 3:36 pm Zoom
-a---l 30/12/2020 3:23 pm (151) backup phrase.txt
-a---l 17/06/2021 3:13 am (410049) CEF1750.pdf
-a---l 16/05/2020 3:32 am (677) default.cpu1
-a---l 21/08/2019 9:06 am (2240) Default.rdp
-a---l 26/05/2021 8:24 am (63399) e-sig.jpg
-a---l 09/03/2020 10:48 pm (143) fan config.sfsm
-a---l 19/09/2020 12:07 pm (279515089) MCSA.rar
Filtrar archivos usando el cmdlet Get-ChildItem
en PowerShell
Podemos usar el parámetro de cambio -File
para devolver solo archivos dentro de una ruta o directorio.
Código de ejemplo:
Get-ChildItem -Path C:\Temp -File
Producción :
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---l 30/12/2020 3:23 pm (151) backup phrase.txt
-a---l 17/06/2021 3:13 am (410049) CEF1750.pdf
-a---l 16/05/2020 3:32 am (677) default.cpu1
-a---l 21/08/2019 9:06 am (2240) Default.rdp
-a---l 26/05/2021 8:24 am (63399) e-sig.jpg
-a---l 09/03/2020 10:48 pm (143) fan config.sfsm
-a---l 19/09/2020 12:07 pm (279515089) MCSA.rar
El alias Get-ChildItem
Windows PowerShell usa un alias integrado predeterminado gci
para el cmdlet Get-ChildItem
. Al igual que el fragmento de código de ejemplo a continuación, puede usar el alias en lugar del cmdlet para una secuencia de comandos más rápida y sin problemas.
Código de ejemplo:
gci -Path C:\Temp -File
Obtenga todos los archivos dentro de los subdirectorios usando el cmdlet Get-ChildItem
en PowerShell
Si queremos obtener todos los archivos en directorios y subdirectorios, use el parámetro de cambio -Recurse
.
Código de ejemplo:
gci -Path C:\Temp -Recurse - Force -File
Nota: El parámetro -Force
permite que el cmdlet obtenga elementos a los que el usuario no puede acceder de otro modo, como archivos del sistema o archivos ocultos. El parámetro Force no anula las restricciones de seguridad. La implementación varía entre los proveedores.
Filtrar archivos con condiciones específicas utilizando el cmdlet Get-ChildItem
en PowerShell
Usando el parámetro -Filter
, podemos filtrar los resultados usando una sola expresión. El parámetro -Filter
no requiere el parámetro -Path
, ya que utilizará su directorio de trabajo actual.
Código de ejemplo:
gci -Filter C:\Temp\* -Filter *.txt
También podemos usar los parámetros del interruptor -Include
, que acepta múltiples condiciones, una excelente ventaja para el parámetro -Filter
. Sin embargo, recuerde que el parámetro -Include
requiere que el parámetro -Path
esté presente en la expresión.
Código de ejemplo:
gci -Path C:\Temp\* -File -Include CEF*.pdf, *.txt
Además de aceptar múltiples condiciones, el parámetro -Include
funciona bien con expresiones regulares, lo que lo convierte en un método más versátil que el parámetro -Filter
.
Producción :
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---l 30/12/2020 3:23 pm (151) backup phrase.txt
-a---l 17/06/2021 3:13 am (410049) CEF1750.pdf
Nota: La ruta debe incluir un asterisco comodín (*
) al final cuando se utiliza el parámetro de cambio -Include
. Este comodín indica que está consultando todos los elementos secundarios de la ruta que tienen la extensión específica definida en el parámetro -Include
.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInArtículo relacionado - PowerShell File
- Almacene el contenido del archivo de texto en variable usando PowerShell
- Consulta de la última hora de escritura del archivo en PowerShell
- Desbloquear archivos usando PowerShell
- Dividir archivo grande en PowerShell
- Leer archivo CSV línea por línea en PowerShell
- Buscar archivos con extensión en PowerShell