Script PowerShell para listar los 10 archivos más grandes en un directorio y sus subdirectorios en Windows
El siguiente script es un comando de PowerShell que lista los 10 archivos más grandes en un directorio y sus subdirectorios, ordenados por tamaño, mostrando su tamaño en MB y su ruta completa en formato tabular.
Get-ChildItem -Path
C:\ -Recurse -File | Sort-Object -Property Length -Descending | Select-Object
-First 10 @{Name="Tamaño (MB)";Expression={[math]::Round($_.Length /
1MB, 2)}} , @{Name="Ruta1";Expression={$_.FullName}}
| Format-Table -AutoSize
A continuación, te proporciono los pasos para ejecutarlo y una explicación de cómo funciona.
Pasos para ejecutar el script en PowerShell
-
Abrir PowerShell:
- En tu computadora con Windows, haz lo siguiente:
- Pulsa la tecla Windows y escribe
PowerShell
. - Haz clic en Windows PowerShell o Windows Terminal (si lo tienes instalado y configurado para usar PowerShell).
- Pulsa la tecla Windows y escribe
- En tu computadora con Windows, haz lo siguiente:
-
Ejecutar PowerShell como administrador (opcional):
- Si necesitas buscar archivos en ubicaciones protegidas del sistema (como
C:\Windows
), es posible que necesites ejecutar PowerShell con permisos de administrador. - Para hacerlo:
- Haz clic derecho en Windows PowerShell y selecciona Ejecutar como administrador.
- Si necesitas buscar archivos en ubicaciones protegidas del sistema (como
-
Habilitar la ejecución de scripts (si es necesario):
- Por defecto, algunas políticas de seguridad en PowerShell pueden impedir la ejecución de ciertos scripts. Si aparece un error, puedes ejecutar el siguiente comando para permitir scripts en la sesión actual:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
- Por defecto, algunas políticas de seguridad en PowerShell pueden impedir la ejecución de ciertos scripts. Si aparece un error, puedes ejecutar el siguiente comando para permitir scripts en la sesión actual:
-
Copiar y pegar el script:
- Copia el comando completo que compartiste y pégalo en la ventana de PowerShell. Asegúrate de copiarlo exactamente como está.
-
Ejecutar el script:
- Pulsa Enter para ejecutar el comando.
- El script comenzará a buscar los archivos en el directorio especificado (
C:\
en este caso), calculará su tamaño en MB y los ordenará para mostrar los 10 más grandes.
-
Ver el resultado:
- El resultado se mostrará en formato tabular con columnas que incluyen:
- Tamaño (MB): El tamaño del archivo en megabytes, redondeado a 2 decimales.
- Ruta1: La ruta completa del archivo.
- El resultado se mostrará en formato tabular con columnas que incluyen:
Explicación del script
El comando se divide en partes específicas que realizan acciones concretas:
-
Get-ChildItem -Path C:\ -Recurse -File
:- Lista todos los archivos en el directorio
C:\
y sus subdirectorios. - La opción
-Recurse
incluye los subdirectorios de forma recursiva. - La opción
-File
asegura que solo se obtendrán archivos (y no carpetas).
- Lista todos los archivos en el directorio
-
Sort-Object -Property Length -Descending
:- Ordena los archivos por la propiedad
Length
(tamaño en bytes) en orden descendente (de mayor a menor).
- Ordena los archivos por la propiedad
-
Select-Object -First 10
:- Selecciona solo los primeros 10 archivos del resultado ordenado.
-
@{Name="Tamaño (MB)";Expression={[math]::Round($_.Length / 1MB, 2)}}
:- Calcula el tamaño de cada archivo en megabytes (MB), dividiendo el tamaño en bytes (
$.Length
) por 1MB (1048576 bytes). - El resultado se redondea a 2 decimales con
[math]::Round
.
- Calcula el tamaño de cada archivo en megabytes (MB), dividiendo el tamaño en bytes (
-
@{Name="Ruta1";Expression={$_.FullName}}
:- Extrae la ruta completa de cada archivo mediante la propiedad
FullName
.
- Extrae la ruta completa de cada archivo mediante la propiedad
-
Format-Table -AutoSize
:- Formatea los resultados como una tabla y ajusta automáticamente el ancho de las columnas.
Ejemplo de resultado
Después de ejecutar el comando, el resultado podría verse así (según los archivos de tu sistema):
Tamaño (MB) Ruta1
------------- -----------------------------------------------
1024.56 C:\Users\Admin\Downloads\video.mp4
850.23 C:\Program Files\Software\installer.exe
765.89 C:\Backup\OldProject.zip
...
Notas importantes
-
Cuidado con el tiempo de ejecución:
- Si estás ejecutando el comando en un directorio grande (como
C:\
), puede tardar un tiempo considerable en completarse, especialmente si hay muchos archivos.
- Si estás ejecutando el comando en un directorio grande (como
-
Permisos:
- Asegúrate de tener permisos para acceder a todos los directorios y archivos dentro de la ruta especificada. Si no tienes acceso, PowerShell podría mostrar errores de "Acceso denegado".
-
Personalización del script:
- Puedes modificar el directorio de búsqueda (
C:\
) a otro que prefieras, por ejemplo:Get-ChildItem -Path "C:\Users\TuUsuario\Documents" -Recurse -File ...
- Puedes modificar el directorio de búsqueda (
-
Cambiar el número de resultados:
- Si deseas mostrar más o menos de 10 archivos, cambia el valor de
-First 10
a otro número, como-First 20
.
- Si deseas mostrar más o menos de 10 archivos, cambia el valor de
Con estos pasos y explicaciones, puedes ejecutar y personalizar el script de acuerdo a tus necesidades.
Comentarios
Publicar un comentario