Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch oder VBS - Doppelte Dateinamen in einem Verzeichnis finden und löschen oder verschieben

Frage Entwicklung Batch & Shell

Mitglied: goodbytes

goodbytes (Level 2) - Jetzt verbinden

12.06.2014 um 11:36 Uhr, 1836 Aufrufe, 6 Kommentare, 1 Danke

Hallo,
ich habe ein dringendes Problem.

Durch einen Softwarefehler wurden mir in einem Verzeichnis sehr viele doppelte Dateinamen erzeugt (ca. 15.000 Dateien).
Von diesen Dateien sollen die Dubletten gelöscht werden.
Ideal wäre wahrscheinlich der bitweise Vergleich.
Ansonsten sind generell die ersten 16 Stellen des Dateinamens identisch, danach unterscheiden sie sich (Zeitstempel der Erzeugung).
Ich muss möglichst schnell die Dupletten entfernen, damit ich die restlichen Dateien weiterverarbeiten kann!

Vielen dank im Voraus!

Gruß
Torsten
Mitglied: emeriks
12.06.2014 um 11:46 Uhr
Hi,
was sind denn hier "Dupletten"? Du willst immer nur eine Datei von jeder Gruppe mit gleichen ersten 16 Stellen erhalten? Und welche? Die älteste, die jüngste, oder was?
E.
Bitte warten ..
Mitglied: goodbytes
12.06.2014 um 11:49 Uhr
Ja genau. Die Dateien sind wirklich identisch und beim Dateiname die ersten 16 Stellen immer gleich. Welche ich nehme ist eigentlich egal. Am besten einfach die erste erstellte Datei.

Gruß
Torsten
Bitte warten ..
Mitglied: Knorkator
12.06.2014, aktualisiert um 12:34 Uhr
Hilft Dir das Erstellungsdatum der Dateien vielleicht auch weiter?

Schau mal hier:
http://blog.waltritscher.com/index.php/2009/08/30/powershell-find-files ...

Poste doch zusätzlich bitte einen Originalen Dateinamen sowie einen von einer Dublette.
Evtl. sollte man nicht die ersten 16 Zeichen filtern sondern die letzten.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 12.06.2014, aktualisiert um 15:30 Uhr
Hi Thorsten,
wenn Powershell nichts ausmacht, probiers mal hiermit:
01.
$folder = "C:\test" 
02.
$files = dir $folder -Recurse |  ?{!$PSIsContainer -and $_.BaseName.Length -ge 16} 
03.
$dupes = @() 
04.
foreach($file in $files){ 
05.
    $check = dir "$($file.Directory)\$($file.BaseName.Substring(0,16))*" -ErrorAction SilentlyContinue | sort -Property LastWriteTime 
06.
    if ($check.Count -gt 1){ 
07.
        foreach($f in $check[1..($check.Length)]){ 
08.
            if ($dupes -notcontains $f.FullName){ 
09.
                $dupes += $f.FullName 
10.
11.
12.
13.
14.
$dupes | %{write-host "Lösche Dublette: '$_'" -ForegroundColor Green; remove-item $_ -Force}
Bitte bei dir an einem Testordner vorher testen.

Grüße Uwe
Bitte warten ..
Mitglied: Tommy70
12.06.2014 um 13:11 Uhr
Hallo,

dafür gibt es auch schon fertige Freeware Tools wie zum Beispiel DoubleKiller

Tom
Bitte warten ..
Mitglied: goodbytes
12.06.2014 um 15:59 Uhr
Hallo Uwe,
funktioniert perfekt, vielen Dank !!!

@Tommy70
Vielen Dank aber das Toll bringt mich da leider nicht weiter. Es handelt sich im Ergebnis um knapp 200 übrig gebliebene Dateien, aus denen sind durch den Fehler rund 15.000 Dateien entstanden. Ich hätte somit knapp 200 Filter "DieErsten16Stellen*" anlegen müssen...

Also, vielen Dank an Alle !!!

Gruß
Torsten
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen (2)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Batch & Shell
Batch Datei: PDF Dateien verschieben, umbenennen und löschen (2)

Frage von F0rcehunter zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (16)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (16)

Frage von Static zum Thema CMS ...

LAN, WAN, Wireless
IP im privaten Netz nicht erreichbar (14)

Frage von guntis zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...