Question [Script] Script Taille d'un répertoire
- Alan Pinard
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 77
- Remerciements reçus 0
il y a 14 ans 6 mois #5246
par Alan Pinard
Alan Pinard
Version A
[Script] Script Taille d'un répertoire a été créé par Alan Pinard
Bonjour à tous,
Ce script permet de récupérer le chemin et la taille des répertoires et en option des sous répertoires.
[code:1]
$RootFolderPath = \"D:\Data\"
$ExportFile = \"C:\Folder\\"+(Get-Date -UFormat %Y%m%d-%H%m%S)+\"_FolderSize.csv\"
$CSVHeaders = \"Name,Size\"
$Recurse = \"False\" #Fait une recherche recursive si elle est setter a True
If((Test-Path $RootFolderPath) -imatch \"False\"«»){Write-Warning \"Directory does not Exist! Please enter a valid directory\"; Break}
Function VAGetFolderSize { #Fonction qui récupère la taille d'un répertoire au format brute
PARAM([String]$FolderPath)
BEGIN {} #END of BEGIN
PROCESS {
$arrChildItems = Get-ChildItem -Recurse $FolderPath | Select-Object Attributes,FullName,Length,Mode,Name
$FolderSize = ($arrChildItems | Measure-Object -Property Length -Sum).sum
} #END of PROCESS
END { Return $FolderSize } #END of END
#Exemple d'utilisation de la Fonction:
#$a = VAGetFolderSize \"C:\Users\"
#$b = [Math]::Round((\"{0:#.00}\" -f ($a / 1MB«»)),2) <- Formate le resultat
}# END of FUNCTION VAGetFolderSize
Function VAFormatSize {
PARAM([String]$Size)
BEGIN {} #END of BEGIN
PROCESS {
$FormatSize = [Math]::Round((\"{0:#.0000}\" -f ($Size/1MB«»)),2)
} #END of PROCESS
END { Return $FormatSize } #END of END
#Exemple d'utilisation de la Fonction:
}# END of FUNCTION VAFormatSize
If(Test-Path $ExportFile){Remove-Item $ExportFile} #Vérification si le fichier exist
$CSVHeaders | Out-File $ExportFile #Création du fichier CSV pour exporter les donner
If($Recurse -imatch \"True\"«»){$arrDirItems = Get-Childitem $RootFolderPath -Recurse | Where-Object {$_.PSIsContainer} | Select-Object Attributes,FullName,Length,Mode,Name} #Récupère la liste des répertoires et fichiers
If($Recurse -imatch \"False\"«»){$arrDirItems = Get-Childitem $RootFolderPath | Where-Object {$_.PSIsContainer} | Select-Object Attributes,FullName,Length,Mode,Name} #Récupère la liste des répertoires et fichiers
ForEach ($objDirItem in $arrDirItems){
$SubFolderName = $objDirItem.FullName
$SubFolderSizeInMb = VAFormatSize (VAGetFolderSize $SubFolderName)
If((($objDirItem.FullName).Contains(\",\"«»)) -eq \"True\"«»){$SubFolderName = ($objDirItem.FullName).Replace(\",\",\" \"«»)} Else {$SubFolderName = $objDirItem.FullName}
$SubFolderName+\",\"+$SubFolderSizeInMb | Out-File -Append $ExportFile
}
(Import-CSV $ExportFile | Sort-Object {[Double]$_.Size} -Descending) | Export-Csv -Force -NoTypeInformation $ExportFile
[/code:1]
Alan Pinard
Version A
Ce script permet de récupérer le chemin et la taille des répertoires et en option des sous répertoires.
[code:1]
$RootFolderPath = \"D:\Data\"
$ExportFile = \"C:\Folder\\"+(Get-Date -UFormat %Y%m%d-%H%m%S)+\"_FolderSize.csv\"
$CSVHeaders = \"Name,Size\"
$Recurse = \"False\" #Fait une recherche recursive si elle est setter a True
If((Test-Path $RootFolderPath) -imatch \"False\"«»){Write-Warning \"Directory does not Exist! Please enter a valid directory\"; Break}
Function VAGetFolderSize { #Fonction qui récupère la taille d'un répertoire au format brute
PARAM([String]$FolderPath)
BEGIN {} #END of BEGIN
PROCESS {
$arrChildItems = Get-ChildItem -Recurse $FolderPath | Select-Object Attributes,FullName,Length,Mode,Name
$FolderSize = ($arrChildItems | Measure-Object -Property Length -Sum).sum
} #END of PROCESS
END { Return $FolderSize } #END of END
#Exemple d'utilisation de la Fonction:
#$a = VAGetFolderSize \"C:\Users\"
#$b = [Math]::Round((\"{0:#.00}\" -f ($a / 1MB«»)),2) <- Formate le resultat
}# END of FUNCTION VAGetFolderSize
Function VAFormatSize {
PARAM([String]$Size)
BEGIN {} #END of BEGIN
PROCESS {
$FormatSize = [Math]::Round((\"{0:#.0000}\" -f ($Size/1MB«»)),2)
} #END of PROCESS
END { Return $FormatSize } #END of END
#Exemple d'utilisation de la Fonction:
}# END of FUNCTION VAFormatSize
If(Test-Path $ExportFile){Remove-Item $ExportFile} #Vérification si le fichier exist
$CSVHeaders | Out-File $ExportFile #Création du fichier CSV pour exporter les donner
If($Recurse -imatch \"True\"«»){$arrDirItems = Get-Childitem $RootFolderPath -Recurse | Where-Object {$_.PSIsContainer} | Select-Object Attributes,FullName,Length,Mode,Name} #Récupère la liste des répertoires et fichiers
If($Recurse -imatch \"False\"«»){$arrDirItems = Get-Childitem $RootFolderPath | Where-Object {$_.PSIsContainer} | Select-Object Attributes,FullName,Length,Mode,Name} #Récupère la liste des répertoires et fichiers
ForEach ($objDirItem in $arrDirItems){
$SubFolderName = $objDirItem.FullName
$SubFolderSizeInMb = VAFormatSize (VAGetFolderSize $SubFolderName)
If((($objDirItem.FullName).Contains(\",\"«»)) -eq \"True\"«»){$SubFolderName = ($objDirItem.FullName).Replace(\",\",\" \"«»)} Else {$SubFolderName = $objDirItem.FullName}
$SubFolderName+\",\"+$SubFolderSizeInMb | Out-File -Append $ExportFile
}
(Import-CSV $ExportFile | Sort-Object {[Double]$_.Size} -Descending) | Export-Csv -Force -NoTypeInformation $ExportFile
[/code:1]
Alan Pinard
Version A
La pièce jointe Get_VAFolderSize.ps1 est absente ou indisponible
Alan Pinard
Version A
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 14 ans 6 mois #5313
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:[Script] Script Taille d'un répertoire
Salut Versiona,
Ton sript est bien concu et bien documenté. Le seul petit reproche que l'on peut faire est que tu n'utilises pas de paramètres pour définir les noms de répertoire. Mais sinon c'est très bien.
Ton sript est bien concu et bien documenté. Le seul petit reproche que l'on peut faire est que tu n'utilises pas de paramètres pour définir les noms de répertoire. Mais sinon c'est très bien.
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.067 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- [Script] Script Taille d'un répertoire