Question
[RESOLU]Statistique sur les types de fichiers
- Deplanche
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 15
- Remerciements reçus 0
il y a 12 ans 3 mois #10867
par Deplanche
[RESOLU]Statistique sur les types de fichiers a été créé 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
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.
- Arthur
- Hors Ligne
- Membre elite
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 12 ans 3 mois #10869
par Arthur
Réponse de Arthur sur le sujet Re:Statistique sur les types de fichiers
Salut,
Il existe une façon \"plus générique\" 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.
Il existe une façon \"plus générique\" 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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 12 ans 3 mois #10871
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Statistique sur les types de fichiers
Tu peux utiliser une instruction Switch, voir l'aide en ligne.
Sinon Bilbao, le sort-object n'est peut être pas nécessaire.
Sinon Bilbao, le sort-object n'est peut être pas nécessaire.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Gaga
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 39
- Remerciements reçus 0
il y a 12 ans 3 mois #10874
par Gaga
Réponse de Gaga sur le sujet Re:Statistique sur les types de fichiers
Tu peux utiliser la cmdlet \"FOREACH\" 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]
[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.
- Deplanche
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 15
- Remerciements reçus 0
il y a 12 ans 2 mois #10884
par Deplanche
Réponse de Deplanche sur le sujet Re:Statistique sur les types de fichiers
Merci pour votre aide, donc mon bout de code se transforme en
[code:1]...
#Recherche de tous les fichiers archives
$Liste=Get-ChildItem -path \"\\nas-hl\ACHATS\" -recurse | Where {$_.attributes -eq \"Archive\"}
#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.
[code:1]...
#Recherche de tous les fichiers archives
$Liste=Get-ChildItem -path \"\\nas-hl\ACHATS\" -recurse | Where {$_.attributes -eq \"Archive\"}
#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
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [RESOLU]Statistique sur les types de fichiers