La taille d’un dossier en PoSh

Devez-vous vraiment installer un VPN sur votre ordinateur ou votre smartphone?

Si vous téléchargez films, séries, MP3, ebooks et jeux illégalement, si vous voulez surfer sur Internet de façon anonyme sans que le gouvernement, votre FAI ou votre employeur soit au courant ... OUI installer un VPN est définitivement une bonne idée !

> Choisissez le meilleur VPN et apprenez à l'utiliser en 5 mn !

Anonymat NordVPN

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.