Question [Résolu]unique et non unique

Plus d'informations
il y a 10 ans 11 mois #20080 par Axel
Réponse de Axel sur le sujet Re:unique et non unique
bonjour merci pour votre aide, je viens de tester mais j'ai toujours les deux mêmes erreurs

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

Plus d'informations
il y a 10 ans 11 mois #20081 par xyz
Réponse de xyz sur le sujet Re:unique et non unique
La version corrigée :
[code:1]
.{
$length = read-host \"`nIndiquez la taille minimum en octet utilisé lors de l'analyse des fichiers \"
$taille = $length

#$folderpath = Select-Folder -path \"C:\\"
$folderpath = 'C:\temp'

#recherche des fichiers par rapport à la taille
$Files = @(
Dir $folderpath * -Recurse -Force |
Where-Object{-not $_.PSisContainer}|
Where-Object {$_.length -gt $taille}
)
if ($Files.Count -gt 0)
{
#$Choice = YesNo -message \"Voulez-vous calculer le MD5 des fichiers retenus ?\"
#$isMD5=$Choice -eq $Yes
$isMD5=$True

#Contient les fichiers de même taille
$doublons = $files |
Sort-Object length |
Foreach {
Write-Warning \"file : $($_.fullname)\"
if ($isMD5)
{
try {
$Hash=(Get-FileHash $_.FullName).MD5
} catch {
Write-error $_
$Hash=$null
}
#Si demandé, ajoute la propriété MD5 à chaque objet fichier
Add-Member -InputObject $_ -MemberType NoteProperty -Name MD5 -Value $Hash
}
Write-Output $_
}|
Group-Object length |
Where-Object {$_.count -gt 1}

#En deux passes, car le MD5 est nécessaire pour ce traitement
if ($isMD5)
{
#Contient les fichiers de même taille ayant un MD5 identique
$Identiques= $doublons|
Where-Object {
#Fichiers de même taille
$Current=$_.Group
#Mémorise un MD5, le premier
$FileHash=$Current[0].MD5
#Construit un tableau contenant tous les MD5
$AllMD5=$Current|Foreach { $_.MD5}
#Tous les MD5 doivent être identique
$Current.Count -eq ( $AllMD5 -eq $FileHash).Count
}
}
else
{$Identiques=@()}

$rapport = $Identiques |
foreach-object {
#boucle sur la collection group de chaque doublon
$_.group |
foreach-object {
#boucle sur la collection de fichiers de chaque group
new-rapport -fichier $_
}#file
}#group
}
else
{Write-Warning \"La recherche n'a pas trouvée de fichier\"}
}
[/code:1]
Le code ne testait pas le cas où la recherche ne renvoyait pas de fichier.
C'est à toi de tester les différents scénarios et à adapter le code, on ne peut pas tout faire à ta place !

Résultat de mes tests :
[code:1]
#Taille =500000
#AVERTISSEMENT : La recherche n'a pas trouvé de fichier

#Taille =1024
$Doublons
# Count Name Group
#
----
# 3 1622 {Test2- Copie.Txt, Test2 - Copie.Txt.bak, Test2.Txt}
# 2 4854 {Test.txt, Test - Copie.txt.bak}

$Doublons|% {$_.group|% {$_.MD5}}
# 6FDB85E79BF15478A1125A124BF83C34
# 37CFBBB98CCA2BCA9E67830AB5921DB
# 37CFBBB98CCA2BCA9E67830AB5921DB

# A3D8CC599878BD9AC252EBAC02BD6
# A3D8CC599878BD9AC252EBAC02BD6
$Identiques
# Count Name Group
#
----
# 2 4854 {Test.txt, Test - Copie.txt.bak}

$Identiques.Group|% {$_.MD5}
# A3D8CC599878BD9AC252EBAC02BD6
# A3D8CC599878BD9AC252EBAC02BD6

#Taille: 1024 ou 500000
#Si $isMD5=$false
#$Identiques est un tableau vide
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 10 ans 11 mois #20096 par Axel
Réponse de Axel sur le sujet Re:unique et non unique
bonjour Laurent, merci de votre aide mais je vais reprendre mon code à 0, désolé pour le temps perdu

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

Plus d'informations
il y a 10 ans 11 mois #20157 par Axel
Réponse de Axel sur le sujet Re:unique et non unique
[code:1]
$Doublons
# Count Name Group
#
----
# 3 1622 {Test2- Copie.Txt, Test2 - Copie.Txt.bak, Test2.Txt}
# 2 4854 {Test.txt, Test - Copie.txt.bak}

$Doublons|% {$_.group|% {$_.MD5}}
# 6FDB85E79BF15478A1125A124BF83C34
# 37CFBBB98CCA2BCA9E67830AB5921DB
# 37CFBBB98CCA2BCA9E67830AB5921DB

# A3D8CC599878BD9AC252EBAC02BD6
# A3D8CC599878BD9AC252EBAC02BD6
$Identiques
# Count Name Group
#
----
# 2 4854 {Test.txt, Test - Copie.txt.bak}

$Identiques.Group|% {$_.MD5}
# A3D8CC599878BD9AC252EBAC02BD6
# A3D8CC599878BD9AC252EBAC02BD6

[/code:1]

pourquoi ne pas garder \&quot;37CFBBB98CCA2BCA9E67830AB5921DB\&quot; car il y en a 2 aussi ?<br><br>Message édité par: Harcide, à: 16/06/15 15:26

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

Plus d'informations
il y a 10 ans 11 mois #20159 par xyz
Réponse de xyz sur le sujet Re:unique et non unique
Harcide écrit:

pourquoi ne pas garder \&quot;37CFBBB98CCA2BCA9E67830AB5921DB\&quot; car il y en a 2 aussi

Oui, mais toi tu connais à peu près le fonctionnel moi pas. Il en existe 3 dont deux identiques, cette règle est-elle précisé quelque part ?
Non, il faut donc la préciser.

-s'il existe deux fichiers identiques ( count -eq 2)
-s'il existe au moins deux fichiers identiques (count -ge 2)
Ce n'est pas la même chose.
Il faut modifier le test et le commentaire \&quot;#Tous les MD5 doivent être identique\&quot; puisque c'est faux.

Tutoriels PowerShell

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

Plus d'informations
il y a 10 ans 11 mois #20160 par Axel
Réponse de Axel sur le sujet Re:unique et non unique

on remarque donc que 3 fichiers ont la même taille que d'autres mais ils n'ont pas le même MD5 alors ils sont unique donc je ne voudrais pas qu'ils s'affichent


désolé si je n'étais pas plus clair :blush:

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

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