Dateienvergleich Suche Programm dafür...
#1
geschrieben 25. Oktober 2005 - 12:51
ich suche ein programm mit dem man dateien vergleichen kann (also größe und deren INHALT!!) und vielleicht noch eins mit dem man formatübergreifend videos vergleichen kann.
PLEASE HELP!!!
Anzeige
#2
geschrieben 25. Oktober 2005 - 13:05
Zitat
sha1sum
Damit erspart man sich vor allem Folge- und Änderungsvergleiche. Außerdem funzt es auch unter einem Mini-Linux, wenn man Festplatte und CDROM-Laufwerk gleichzeitig ausfallen, während Microsoft dicht macht.
Zitat
Ähm... jeder beliebige Video-Editor? Zweimal starten, Frame für Frame visuell vergleichen. Man kann, wenn man Synchronität voraussetzt, auch automatisiert frameweise symmetrisch subtrahieren und dann das Ergebnis visuell auf Nichttrivialität beschauen.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#3
geschrieben 25. Oktober 2005 - 14:52
#4
geschrieben 25. Oktober 2005 - 16:33
Haben zwei Dateien den gleichen Inhalt, resultiert daraus, dass beide Dateien die gleiche checksum haben. Warum also das Ganze nicht, wie von Rika beschrieben, mit sha1sum machen?
Einfach mit dem Commandline-Tool sha1sum von den beiden Dateien eine Checksum erstellen und die dann vergleichen. Sind sie identisch, so ist folglich der Inhalt der Dateien auch identisch. Sind die Checksums nicht identisch, dann hast du ein Problem und die Dateien sind inhaltsmäßig bestimmt nicht gleich.
#5
geschrieben 25. Oktober 2005 - 17:44
Vor allem erspart es n:n-Vergleiche.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#6
geschrieben 25. Oktober 2005 - 18:02
#7 _derspeckmen_
geschrieben 26. Oktober 2005 - 09:38
@knogger
Mein Tipp ist ein Programm, dass ich für genau solche Fälle, seit Jahren nutze.
Es heißt " Dupemaster" und ist von CH-Soft.
Dieses Programm durchsucht Ordner oder ganze Laufwerke nach doppelten
Dateien, vergleicht sie an Hand der Checksumme und zeigt dann alle doppelten
Dateien in einer Liste an.
Jetzt kannst die zu löschenden Dateien einzeln markieren und löschen.
Alternativ kannste das Proggl auch anweisen von jeder gefundenen nur eine
übrig zu lassen und alle doppelten mit einem Rutsch in den Papierkorb zu
verschieben. Leider ist es aber nach v1.7.0.1 nicht mehr Freeware.
Wenn du aber willst kann ich dir diese Version als Mailanhang senden.
Is ca 1 MB groß und in deutsch.
mfg.
Edit:
Habe es gerade doch noch zum Download entdeckt: klick
Is aber die v1.7
Hoffe geholfen zu haben.
Dieser Beitrag wurde von derspeckmen bearbeitet: 26. Oktober 2005 - 09:50
#8
geschrieben 26. Oktober 2005 - 12:20
Zitat
Dateien, vergleicht sie an Hand der Checksumme und zeigt dann alle doppelten
Dateien in einer Liste an.
for /r %i in (*.*) do sha1sum %i>>tmp & sort tmp & type tmp
Und dabei kann man die Liste mit den Prüfsumme auch speichern, entweder Datei- oder Ordner-weise und später beliebig abgleichen.
Zitat
übrig zu lassen und alle doppelten mit einem Rutsch in den Papierkorb zu
verschieben.
for /r %i in (*.*) do sha1sum %"i">>tmp & sort -e tmp & for /f "delims=; tokens=2" do del "%i"
Zitat
Ich biete 52KB als maximal performance-orientiertes Kompilat mit 'm ICC.
Dazu 'ne Garantie, daß es absolut genau das macht, was es soll und absolut nix schiefgehen kann, was am Programm liegen könnte.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#9 _derspeckmen_
geschrieben 26. Oktober 2005 - 12:29
@Rika
Find ich schon toll, dass du sowas kannst, bzw. weißt, aber ich hatte "knogger" so
verstanden, dass er ein downloadbares Proggi sucht, dass sowas kann.
Deshalb hatte ich dies Programm vorgeschlagen, und kann es jedem empfehlen.
Fehler hat es bei mir noch nie gemacht.
Man kann ja auch den Papierkorb zuerst überprüfen, bevor man den Inhalt löscht.
Außerdem finde ich es echt klasse, dass dieses Programm von 2001 einwandfrei
unter XP arbeitet.
mfg.
Dieser Beitrag wurde von derspeckmen bearbeitet: 26. Oktober 2005 - 12:31
#10
geschrieben 26. Oktober 2005 - 12:41
Dieser Beitrag wurde von swissboy bearbeitet: 26. Oktober 2005 - 12:43
#11
geschrieben 26. Oktober 2005 - 21:15
->
@echo off for /r %%i in (*.*) do sha1sum "%%i">>"%temp%\dup1.txt" for /f "tokens=1,2*" %%a in (%temp%\dup1.txt) do echo %%a;%%b %%c>>"%temp%\dup2.txt" finddup "%temp%\dup2.txt" "%temp%\dup3.txt" 1; for /f "delims=; tokens=2" %%d in (%temp%\dup3.txt) do echo del "%%d">>"%temp%\dup4.bat" call "%temp%\dup4.bat" del "%temp%\dup1.txt" del "%temp%\dup2.txt" del "%temp%\dup3.txt" del "%temp%\dup4.bat" @echo on
sha1sum kennt jeder, finddup ist ein Programm zur Eliminiation von Duplikaten in CSV-Tabellen. Kann man sich auch trivial selbst schreiben.
namespace Tool
{
using System;
using System.Collections;
using System.IO;
using System.Text;
public sealed class FindDup
{
private static StreamReader input;
private static StreamWriter output;
private static int select;
private static char[] splitter;
[STAThread]
public static void Main(String[] args)
{
try
{
if (args.Length < 2)
{
Console.WriteLine("Syntax: dupfind inputfile outputfile [select] [splitter] [encoding]");
throw new MissingFieldException();
}
input = new StreamReader(args[0]);
output = new StreamWriter(args[1]);
if (args.Length >= 3)
{
select = Int32.Parse(args[2]);
}
else
{
select = 1;
}
if (args.Length >= 4)
{
splitter = args[3].ToCharArray();
}
else
{
splitter = new char[] {';', ','};
}
if (args.Length >= 5)
{
Encoding encoding;
switch (args[4])
{
case "ASCII":
encoding = Encoding.ASCII;
break;
case "UTF8":
encoding = Encoding.UTF8;
break;
case "UTF7":
encoding = Encoding.UTF7;
break;
case "Unicode":
encoding = Encoding.Unicode;
break;
case "Unicode-BE":
encoding = Encoding.BigEndianUnicode;
break;
default:
encoding = Encoding.Default;
break;
}
input = new StreamReader(input.BaseStream, encoding);
output = new StreamWriter(output.BaseStream, encoding);
}
IDictionary inputtable = new Hashtable();
IList outputtable = new ArrayList();
while (input.Peek() != -1)
{
String line = input.ReadLine();
String[] linesplit = input.ReadLine().Split(splitter);
if (linesplit.Length >= select)
{
String key = linesplit[select - 1];
if (inputtable.Contains(key))
{
outputtable.Add(line);
}
else
{
inputtable.Add(key, line);
}
}
}
IEnumerator enumerator = outputtable.GetEnumerator();
while (enumerator.MoveNext())
{
output.WriteLine(enumerator.Current);
}
input.Close();
output.Close();
}
catch (MissingFieldException e)
{
}
;
}
}
}
Man kann sich Zwischenresultate beliebig ausgeben lassen oder auch eigene Filterkriterien einbauen, z.B. Filtern der Dateinamen via RegExps (natürlich auf Eben des Batch-Programmes, via 'grep').
Der große Vorteil ist halt, daß es absolut zuverlässig ist und man nicht irgendeinem Programmautor vertrauen muss, daß er da irgendwelche Fehler macht.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

Hilfe
Neues Thema
Antworten
Nach oben


