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.

<#
	.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" (o, Ko, Mo, Go, To).
	
	.EXAMPLE
		Display-FolderUsedSpace -Path "c:\Windows" -Recurse
	
	.OUTPUTS
		System.String, System.int32
	
	.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

# 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
}

# Affichage du résultat
if ($HumanReadable)
{
	# Calcul de la fraction
	$Factor = [int][math]::Floor("$Size".Length/3)
	
	# 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"
		}
	}
	
	# Affiche du résultat
	if ($Unit -eq "B")
	{
		Write-Host "$Size B"
	}
	else
	{
		$Divide = "1$Unit"
		$HumanReadableSize = [math]::Round($Size / $Divide, 2)
		Write-Host "$HumanReadableSize $Unit"
	}
}
else
{
	Write-Host $Size
}

Nicolas THOREZ 2020/07/17 12:07

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • powershell_usedspace.1594981087.txt.gz
  • Dernière modification : 2020/07/17 12:18
  • de nekan