Página principal Sobre mi Links de Interés Contacto Blogs de referencia

Translate

martes, 31 de julio de 2018

Textual description of firstImageUrl

Windows powershell: Listar carpetas con su tamaño a un archivo CSV.

Seguro, que muchos de vosotros, en alguna ocasión habréis tenido que comprobar el tamaño que tienen cada una de las carpetas del árbol de carpetas de un servidor de ficheros.

Frecuentemente tenemos que realizar esta tarea, porque nos estamos quedando sin espacio en los discos de nuestro servidor de archivos y necesitamos hacer limpieza del árbol de carpetas, pero para facilitar el trabajo de vaciado primero tenemos que saber cuales son las carpetas que consumen más capacidad.

La manera más sencilla de poder comprobar el tamaño que  tiene cada una de las carpetas que componen nuestro servidor de ficheros, es listar el árbol entero a un archivo de texto.

Para realizar esta operación, usaremos la construcción del comando que mostramos a continuación. En él, sustituiremos la carpeta C:\DATOS\* por el nombre de nuestra carpeta del servidor de ficheros.

Terminada la ejecución, aparecerá por pantalla el listado de carpetas con sus tamaños.

Get-ChildItem -path "C:\datos\*" | Foreach {
$Files = Get-ChildItem $_.FullName -Recurse -File
$Size = '{0:N2}' -f (( $Files | Measure-Object -Property Length -Sum).Sum /1MB)
[PSCustomObject]@{Profile = $_.FullName ; TotalObjects = "$($Files.Count)" ; SizeMB = $Size}
}

Profile                    TotalObjects SizeMB
-------                    ------------ ------
"C:\datos\Carpeta Datos 01  64          4.965,21
"C:\datos\Carpeta Datos 02  9           1.036,36
"C:\datos\Carpeta Datos 03  9           1.036,36
"C:\datos\Carpeta Datos 04  8           12,36

Esto seria suficiente, si solo tenemos cuatro carpetas en nuestro servidor de ficheros, como ocurre en nuestro laboratorio de ejemplo. Pero como en la realidad no será así, lo mejor es listar el resultado de la ejecución anterior a un archivo de texto. Esto nos permitirá trabajar más cómodamente.

Para realizar esta operación, usaremos la construcción del comando que mostramos a continuación. En él, sustituiremos la carpeta C:\DATOS\* por el nombre de nuestra carpeta del servidor de ficheros y la ruta C:\folder-size\folder-size.csv por la ubicación donde deseamos almacenar el archivo de texto resultante de la operación.

Get-ChildItem -path "C:\datos\*" | Foreach {
$Files = Get-ChildItem $_.FullName -Recurse -File
$Size = '{0:N2}' -f (( $Files | Measure-Object -Property Length -Sum).Sum /1MB)
[PSCustomObject]@{Profile = $_.FullName ; TotalObjects = "$($Files.Count)" ; SizeMB = $Size}
}| Export-CSV "C:\folder-size\folder-size.csv" -NoTypeInformation

Finalizada la ejecución del comando, encontraremos en la carpeta llamada folder-size de nuestro disco C:\, el archivo folder-size.csv. En su interior, tendremos nuestro listado de carpetas con sus tamaños.

Windows powershell: Listar carpetas con su tamaño a un archivo CSV.

No hay comentarios:

Publicar un comentario