PSItems Módulo PowerShell que encuentra Archivos y Carpetas
PSItems es Módulo PowerShell que encuentra Archivos y Carpetas

PSItems: Módulo PowerShell que encuentra Archivos y Carpetas

PSItems es un módulo de PowerShell que encuentra archivos y directorios, así como información de archivos y directorios, de forma rápida y sencilla.

Panorama General

Información

Las funciones del módulo no se ejecutan con Windows PowerShell, requieren al menos PowerShell > 6.0 o una versión más reciente. Siempre se recomienda la última versión estable de PowerShell

https://github.com/PowerShell/PowerShell/releases

El desarrollador trabaja mucho con distribuciones de Linux y no había encontrado una manera en Windows para encontrar archivos o carpetas o su información de una manera RÁPIDA, entonces desarrolló este módulo o funciones. Al principio estaba buscando una alternativa al find de Linux y desarrolló Find-Item.

Por supuesto, todas las funciones de este módulo funcionarán en Windows, Linux y macOS.

Get-ChildItem funciona muy bien para obtener una visión general de los archivos y carpetas actuales, pero es muy, muy lento cuando se trata de una gran cantidad de objetos del sistema de archivos. Así que decidió utilizar las clases .NET directamente y utilizar sólo las funcionalidades que realmente se necesita para el caso particular.

Desde entonces, no hace falta que molestarse con la búsqueda incorporada en el Explorador de Windows ni pelearse con llamar lentamente a Get-ChildItem.

El término “item” en PSItems o también los nombres de las funciones individuales es un término colectivo para todos los objetos del sistema de archivos, como archivos y directorios. Por lo tanto, por ejemplo, la función se llama Find-Item y no Find-File, porque con ella también se pueden encontrar uniones, directorios, accesos directos, etc.

Instalación

La instalación de este módulo es sencilla, basta con instalarlo e importarlo.

Install-Module -Name PSItems
Import-Module -Name PSItems

Uso de PSItems

El uso y algunos ejemplos se pueden encontrar en la carpeta de documentación o utilizando el cmdlet Get-Help.

CmdletDescripciónDocumentación
Find-ItemFunción simple y rápida para encontrar cualquier elemento en el sistema de archivos (como find en Linux/unix)Find-Item
Get-ItemSizeFunción simple y rápida para obtener el tamaño de cualquier elemento del sistema de archivos (como du en Linux/unix)Get-ItemSize
https://github.com/eizedev/PSItems/blob/master/docs/en-US/Find-Item.md
https://github.com/eizedev/PSItems/blob/master/docs/en-US/Get-ItemSize.md

Funciones

Obtener las funciones del módulo:

🤞 ¡No te pierdas ningún truco de seguridad!

¡No enviamos spam! Lee nuestra Política de Privacidad para más información.

Get-Command -Module PSItems -CommandType All
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           ff -> Find-Item                                    0.2.3      PSItems
Alias           fi -> Find-Item                                    0.2.3      PSItems
Alias           gis -> Get-ItemSize                                0.2.3      PSItems
Alias           search -> Find-Item                                0.2.3      PSItems
Alias           size -> Get-ItemSize                               0.2.3      PSItems
Function        Find-Item                                          0.2.3      PSItems
Function        Get-ItemSize                                       0.2.3      PSItems

Ayuda

Obtener ayuda de la función:

Get-Help Find-Item
NAME
    Find-Item

SYNOPSIS
    Simple and fast function for finding any item on the filesystem (like find on linux/unix)


SYNTAX
    Find-Item [[-Path] <String>] [[-Name] <String[]>] [-Type <String>] [-Recurse] [-IgnoreInaccessible <Boolean>] [-As <String>] [-MatchCasing <String>] [-AttributesToSkip <String[]>] [-MatchType
    <String>] [-Depth <Int32>] [-ReturnSpecialDirectories] [<CommonParameters>]
...

Pruebas y Velocidad

El sistema de prueba fue un Lenovo T480 con Windows 10 (SSD + Indexación desactivada).

Prueba 1. Directorio de Windows recursivamente – Devuelve la cadena FullName

Se devuelve un array con la ruta de todos los archivos (FullName).

Measure-Command { $windir = search C:\Windows\ '*' -Recurse -AttributesToSkip 0 }

Encontrar todos los elementos (archivos, directorios…) en el directorio C:Windows incluyendo todos los subdirectorios (-Recurse) así como los archivos ocultos y del sistema (-AttributesToSkip 0) utilizando la función Find-Item.

Se utilizó el alias search y para el parámetro -Path (C:\windows) y -Name ('*') se utilizó la primera y segunda posición:

Prueba 2 de PSItems
Prueba 2 de PSItems

En aproximadamente 1 minuto la función encontró todos los archivos, directorios, etc. en el directorio completo de Windows y devolvió un array con todas las propiedades de FullName de los elementos.

Prueba 2. Directorio de Windows de forma recursiva – Devuelve el objeto FileInfo

Se devolverá un array de objetos (FileInfo) de todos los elementos. Lo mismo que usando Get-ChildItem.

Measure-Command { $windir = search C:\Windows\ '*' -Recurse -AttributesToSkip 0 -As FileInfo }

Encontrar todos los elementos (archivos, directorios…) en el directorio C:Windows incluyendo todos los subdirectorios (-Recurse) así como los archivos ocultos y del sistema (-AttributesToSkip 0) utilizando la función Find-Item.

Se utilizó el alias search y para el parámetro -Path (C:\windows) y -Name ('*') se utilizó la primera y segunda posición:

Prueba 2 de PSItems
Prueba 2 de PSItems
Objetos FileInfo en PSItems
Objetos FileInfo en PSItems

En unos 2 minutos la función encontró todos los archivos, directorios, etc. en el directorio completo de Windows y devolvió un array de objetos FileInfo de todos los elementos con todas las propiedades. Al igual que con Get-ChildItem, puedes simplemente seguir utilizando los objetos individuales.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda