La taille d’un dossier en PoSh

Dans le bon temps, nous avions accès à la propriété “Size” d’un objet ‘Dossier’ avec le FileSystemObject (le ‘FSO’) . Dans PowerShell (que j’aime bien quand même) la propriété n’est plus aussi simplement accessible. Je me suis fait une petite fonction toute simple pour la retrouver …

La ligne de code principale est la suivante :

(Get-ChildItem -Path "C:\mesScripts" -Recurse | measure-object Length -sum).Sum

C’est bien jolie et fonctionnel mais à caser dans une boucle ou une condition, ça prend de la place … Me fallait donc faire ma petite fonction pour rendre ça plus fonctionnel, la voilà :

Function ArboSize([string]$FolderPath, [string]$frmt)
{
 $MySize = (Get-ChildItem -Path $FolderPath -Recurse | measure-object Length -sum).Sum

 Switch ($frmt) {
 kb {Return [double]($MySize/1KB)}
 mb {Return [double]($MySize/1MB)}
 gb {Return [double]($MySize/1GB)}
 tb {Return [double]($MySize/1TB)}
 default {Return [double]$MySize}
 }
}

Il suffit d’appeler la fonction comme suit :

ArboSize <chemin> <format>

format disponnible : “kb” – “mb” – “gb” – “tb”. Si omis, le résultat sera en bits. Cette option est à choisir si vous devez effectuer une/des opération(s) arithmétique.

Aller, un petit exemple pour bien situer. La 2ème ligne, c’est pour formater la sortie avec 2 chiffres après la virgule (1,23)

$FolderSize = ArboSize "C:\mesScripts" "mb"
"{0:N2}" -f $FolderSize

Laisser un commentaire

Cliquez ici pour révoquer votre décision.