Tamaños de carpeta rápidos con PowerShell
Siempre estoy buscando formas de hacer las cosas más rápidas y sencillas con PowerShell. Una tarea común que parece que nunca dejo de necesitar es descubrir cuánto espacio en disco consume una carpeta determinada. Aunque el espacio en disco es barato hoy en día, supongo que soy lo suficientemente anticuado como para querer mantener las cosas eficientes.
Es bastante sencillo ejecutar Get-Childitem y canalizar los resultados a Measure-Object.
Pero esto a menudo puede llevar mucho tiempo. El otro inconveniente, además de escribir, es que se necesita trabajo adicional para formatear los resultados en algo más fácil de usar. Y si quiero incluir archivos ocultos, debo recordar usar -Force con Get-ChildItem.
Los cmdlets son agradables y convenientes. Y siempre recomiendo a los programadores principiantes o incluso intermedios, que si hay un cmdlet para usar en .NET Framework, usen el cmdlet. Pero siempre hay excepciones y, a medida que adquiera experiencia, se dará cuenta de que hay ocasiones en las que ir directamente a .NET Framework es una mejor opción. Que es lo que he hecho.
En la última versión del módulo PSScriptTools, creé una nueva función llamada Get-FolderSizeInfo. Todavía tengo la facilidad de ejecutar un comando en el símbolo del sistema de PowerShell, pero la función utiliza .NET Framework para acelerar la enumeración y medición de archivos. Puede ver el código fuente aquí si está interesado.
Ahora puedo obtener fácil y rápidamente el tamaño de la carpeta. El valor predeterminado es omitir archivos y pliegues ocultos, pero también puedo incluirlos fácilmente.
Esto también facilita la comprobación de las carpetas de nivel superior.
Y debido a que la función escribe un objeto personalizado en la canalización con un nombre de tipo único, agregué un archivo ps1xml de formato personalizado que me permite formatear los resultados como KB, MB o GB.
Como puede ver en mis capturas de pantalla, este comando funciona multiplataforma en PowerShell 7.
Si está interesado en esto, puede obtener más información sobre el módulo PSScriptTools o instalarlo desde la Galería de PowerShell. Espero que encuentres esto tan útil como yo.




