Question Connaître la taille prise/perdu par les doublons

Plus d'informations
il y a 7 ans 9 mois #25628 par Derouin
Bonjour,

J'aimerais connaître la taille pris par les doublons c'est à dire les fichiers identiques présent au minimum deux fois.

Premièrement je ne considère que les fichiers doublons possédant le même nom, même taille et même date de modification.
Je les ais listés
[code:1]
#LISTE DE TOUS LES DOUBLONS
$doublons = While ($i -ne $TailleTableau) # Tant que $i est différent de $TailleTableau
{
$doublon[$i].Group # On affiche la cellule actuel du tableau
$i++ # On incrément $i soit on se déplace d'une cellule dans le tableau
}
[/code:1]

Maintenant je souhaiterais pouvoir connaître leurs poids totale sans \"le fichier original\".
Exemple j'ai 3 fois le même fichiers :
[code:1]
What's new.txt 4393 06/07/2002 18:55:02 C:\Test\log
What's new.txt 4393 06/07/2002 18:55:02 C:\Test
What's new.txt 4393 06/07/2002 18:55:02 C:\Test\3\3.1
[/code:1]
Je souhaiterais connaître le poids sans \"le fichier original\" autremement dis que des deux fichiers double en trop.

Merci d'avance :)

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

Plus d'informations
il y a 7 ans 9 mois #25632 par Philippe
salut Somyx

il manque un peu de script pour te guidé
mais ce n'est qu'un problème de math comme le script de l'autre post

ici tu multiplie la taille du fichier par le nombre de fois trouver moins un

sans doute quelque chose comme ça :
[code:1]$doublon[$i].group[0].length * ($doublon[$i].count - 1)
[/code:1]

Message édité par: 6ratgus, à: 18/06/18 11:27<br><br>Message édité par: 6ratgus, à: 18/06/18 11:28

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

Plus d'informations
il y a 7 ans 9 mois #25634 par Derouin
Merci de l'aide mais je n'arrive à utiliser ton code, j'ai du préciser que pour connaitre le poids des doublons je partais sur une boucle et que j'avais déjà fais cela :
[code:1]
Foreach ($files in $doublons) # Pour chaque fichier dans $doublons
{
$tailledoublon+= ($files.Length.count - 1)
$Tailledoublon prend sa valeur et additionne celle d'un fichier
}
$tailledoublonMo = [math]::Round($tailledoublon/1Mb,2) # On convertis la taille totale obtenu en Ko en Mo jusqu'au centième
[/code:1]

Merci de vos réponses

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

Plus d'informations
il y a 7 ans 9 mois #25635 par Derouin
Somyx écrit:

Merci de l'aide mais je n'arrive à utiliser ton code, j'ai du préciser que pour connaitre le poids des doublons je partais sur une boucle et que j'avais déjà fais cela :
[code:1]
Foreach ($files in $doublons) # Pour chaque fichier dans $doublons
{
$tailledoublon+= ($files.Length.count - 1)
$Tailledoublon prend sa valeur et additionne celle d'un fichier
}
$tailledoublonMo = [math]::Round($tailledoublon/1Mb,2) # On convertis la taille totale obtenu en Ko en Mo jusqu'au centième
[/code:1]

Merci de vos réponses


Correction :
J'ai déjà écrit cela
[code:1]
Foreach ($files in $doublons) # Pour chaque fichier dans $doublons
{
$tailledoublon+=$files.Length #$Tailledoublon prend sa valeur et additionne celle d'un fichier
}
$tailledoublonMo = [math]::Round($tailledoublon/1Mb,2) # On convertis la taille totale obtenu en Ko en Mo jusqu'au centième
[/code:1]

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

Plus d'informations
il y a 7 ans 9 mois #25637 par Philippe
une astuce serait de compte a partir du deuxième élément c'est à dire élément 1 :


[code:1]Foreach ($files in $doublons[1..$doublons.count-1]) # Pour chaque fichier dans $doublons
{
$tailledoublon+=$files.Length #$Tailledoublon prend sa valeur et additionne celle d'un fichier
}
$tailledoublonMo = [math]::Round($tailledoublon/1Mb,2) # On convertis la taille totale obtenu en Ko en Mo jusqu'au centième
[/code:1]

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

Plus d'informations
il y a 7 ans 9 mois #25638 par Derouin
Merci ta réponse semble être ce que je recherche mais malheureusement cela ne fonctionne pas :dry:
Voici le résultat :
[code:1]
Échec lors de l’appel de la méthode, car [System.Object[]] ne contient pas de méthode nommée « op_Subtraction ».
Au caractère C:\Temp\Script\DoublonsParNom.ps1:15 : 28
+ Foreach ($files in $doublons[1..$doublons.count-1])
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (op_Subtraction:«»String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

La taille totale des doublons en Mo : 0 Mo
[/code:1]
Des idées ? Merci


Sinon pour résoudre mon problème j'ai pensé à une autre manière de procéder:
Il faudrait lister tous les fichiers doublons (Comme fais pour le moment) et calculer leurs poids totale (Comme fais pour le moment)
Ainsi que lister seulement \&quot;le fichier original\&quot; des doublons et calculer leurs poids totale.
Pour ensuite faire :
$PoidsDoublons = $Poidstousdoublons - $Poidsoriginaldoublons

Par exemple :
[code:1]
What's new.txt 4393 06/07/2002 18:55:02 C:\Test\log

What's new.txt 4393 06/07/2002 18:55:02 C:\Test

What's new.txt 4393 06/07/2002 18:55:02 C:\Test\3\3.1

[/code:1]
Pour ceci cela donnerais :
$poidsDoublons = (4393*3) - 4393

J'espère être compréhensible et que quelqu'un aurais une idée.
Merci d'avance :)

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

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