Question [RESOLU]Statistique sur les types de fichiers

Plus d'informations
il y a 12 ans 3 mois #10867 par Deplanche
Bonjour,

Je suis entrain de faire un script qui me permet, de connaitre le nombre de fichier d'un type x, et son nombre d'occurence.

Le script suivant fonctionne, mais je voulais savoir c'est le code est propre, ou \"mais non, tu te casse les pieds pour rien, on ne code plus de cette façon\" ?

De façon à l'optimiser, merci.

[code:1]#Recherche de tous les fichiers archives
$Liste=Get-ChildItem -path \"C:\\" | Where {$_.attributes -eq \"Archive\"}

#Somme de la taille de tous les fichiers
FOR ($i=0; $i -lt $Liste.GetLength(0); $i++)
{
IF($Liste[$i].Extension -eq $ExcelExt1)
{
$ExcelPoid = $ExcelPoid + $Liste[$i].Length
$ExcelNb++
}
ELSEIF($Liste[$i].Extension -eq $ExcelExt2)
{
$ExcelPoid = $ExcelPoid + $Liste[$i].Length
$ExcelNb++
}
ELSEIF($Liste[$i].Extension -eq $WordExt1)
{
$WordPoid = $WordPoid + $Liste[$i].Length
$WordNb++
}
ELSEIF($Liste[$i].Extension -eq $WordExt2)
{
$WordPoid = $WordPoid + $Liste[$i].Length
$WordNb++
}
ELSEIF($Liste[$i].Extension -eq $PowerpointExt1)
{
$PowerpointPoid = $PowerpointPoid + $Liste[$i].Length
$PowerpointNb++
}
ELSEIF($Liste[$i].Extension -eq $PowerpointExt2)
{
$PowerpointPoid = $PowerpointPoid + $Liste[$i].Length
$PowerpointNb++
}[/code:1]<br><br>Message édité par: Dionysoos, à: 30/12/11 11:34

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 3 mois #10869 par Arthur
Salut,

Il existe une façon \&quot;plus générique\&quot; dans le man de Get-ChildItem :

[code:1]get-childitem | sort-object -property extension | group-object -property extension[/code:1]

La propriété count te donne le nombre d’occurrence pour chaque extensions.

Je ne sais pas si cela correspond exactement à ton besoin mais c'est une bonne façon de faire.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 3 mois #10871 par Laurent Dardenne
Tu peux utiliser une instruction Switch, voir l'aide en ligne.

Sinon Bilbao, le sort-object n'est peut être pas nécessaire.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 3 mois #10874 par Gaga
Tu peux utiliser la cmdlet \&quot;FOREACH\&quot; qui te permet de parcourir tous les éléments d'un tableau d'objet jusqu'à la fin sans rien gérer (nb éléments, fin du tableau).

[code:1]foreach ($fichier in $liste)
{
switch ($fichier.extension)
{
$ExcelExt1 { .. traitement .. }
$ExcelExt2 { .. traitement .. }
...
...

}

}[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 2 mois #10884 par Deplanche
Merci pour votre aide, donc mon bout de code se transforme en
[code:1]...
#Recherche de tous les fichiers archives
$Liste=Get-ChildItem -path \&quot;\\nas-hl\ACHATS\&quot; -recurse | Where {$_.attributes -eq \&quot;Archive\&quot;}

#Calcul des tailles par type de fichier
FOREACH ($fichier in $Liste)
{
SWITCH($fichier.extension)
{
$ExcelExt1
{
$ExcelPoid = $ExcelPoid + $Liste[$i].Length
$ExcelNb++
}
$ExcelExt2
{
$ExcelPoid = $ExcelPoid + $Liste[$i].Length
$ExcelNb++
}
$WordExt1
{
$WordPoid = $WordPoid + $Liste[$i].Length
$WordNb++
}
$WordExt2
{
$WordPoid = $WordPoid + $Liste[$i].Length
$WordNb++
}
...[/code:1]

Pour information je suis entrain de travailler sur des scripts PowerShell, afin de m'aider à récolter des informations comme la quantité de données, les types de fichiers et dans qu'elle proportion.

Ces informations me seront utile pour un projet d'achitecture de sauvegarde centralisée et sécurisée sur lequel je travail actuellement.

Les types de fichiers et leurs proportions sont utile pour faire une estimation du taux de réduction avec des sauvegardes par déduplication.

Meilleurs voeux de fin d'année à la commutauté powershell-scripting.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.075 secondes
Propulsé par Kunena