Ceci est une ancienne révision du document !


~~CLOSETOC~~

Connaître l'espace utilisé par un dossier

une petite fonction utile pour connaître l'espace utilisé par un dossier, seul ou avec ces sous-dossiers.

function Get-FolderUsedSpace()
{
<#
	.SYNOPSIS
		Affiche la taille d'un dossier.
	
	.DESCRIPTION
		La fonction affiche l'espace occupé sur le disque par un dossier.
		Il est possible de choisir entre l'espace du dossier seul (les fichiers du premier niveau uniquement) ou de l'arborescence totale (en incluant les sous-dossiers).
	
	.PARAMETER Path
		Chemin du dossier dont l'espace utilisé doit être calculé.
	
	.PARAMETER Recurse
		Permet d'inclure les sous-dossiers dans le calcul de l'espace utilisé
	
	.PARAMETER HumanReadable
		Renvoie l'espace utilisé de manière lisible, avec l'unité (B, KB, MB, GB, TB).
	
	.EXAMPLE
		Get-FolderUsedSpace -Path "c:\Windows" -Recurse
	
	.OUTPUTS
		PSCustomObject
	
	.NOTES
		Crée par Nicolas THOREZ, Shyrka System
	
	.INPUTS
		System.String
	
	.LINK
		Plus d'informations sur https://www.shyrkasystem.com
#>
	
	# Paramètres
	param
	(
		[string]$Path = (Get-Location).Path,
		[switch]$Recurse = $false,
		[switch]$HumanReadable = $false
	)
	
	# Initialisation des variables
	$FileList = @()
	$Size = 0
	$Unit = "B"
	
	# Création de la liste des fichiers
	$FileList = Get-ChildItem -Path $Path -include * -Recurse:$Recurse -force
	
	# Calcul
	ForEach ($File in $FileList)
	{
		# Ajout de la taille du fichier dans le total
		$Size += $File.length
	}
	
	# Calcul de la fraction
	$Factor = [int][math]::Floor("$Size".Length/3)
	
	# Traitement de la lisibilité
	if ($HumanReadable)
	{
		# Sélection de l'unité selon la fraction
		switch ($Factor)
		{
			0 {
				$Unit = "B"
			}
			1 {
				$Unit = "KB"
			}
			2 {
				$Unit = "MB"
			}
			3 {
				$Unit = "GB"
			}
			default {
				$Unit = "TB"
			}
		}
		
		# Calcule de la taille lisible
		if ($Unit -ne "B")
		{
			$Divider = "1$Unit"
			$Size = [math]::Round($Size / $Divider, 2)
		}
	}
		
	# Création des propriétés de l'objet
	$Hash = [ordered]@{
		Path = $Path
		Size = $Size
		Unit = $Unit
	}
	
	# Affichage de l'objet
	New-Object PSObject -Property $Hash
}

Nicolas THOREZ 2020/07/17 12:07

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • powershell_usedspace.1596803840.txt.gz
  • Dernière modification : 2020/08/07 14:37
  • de nekan