Top-Themen

Aktuelle Themen (A bis Z)

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 Zwei Dateien vergleichen (z.B. auf Größe) nach erfolgtem Copy

Mitglied: icsat

icsat (Level 1) - Jetzt verbinden

27.01.2006, aktualisiert 02.02.2007, 10508 Aufrufe, 12 Kommentare

Zum Ausführungszeitpunkt des Copy Komandos kann ich nicht sicher sein, dass die Quelldatei bereits vollständig vorhanden ist, wie kann ich prüfen ob die Quelldatei sich nach dem Copy noch verändert hat?

Hallo,

ich bekomme mehrere Dateien auf einem Server mittels openFT zur Verfügung gestellt und mit der zuletzt gesendete Datei wird ein Verarbeitungsscript angestoßen. Im Verarbeitungsscript werden die Dateien mittels copy an einen anderen Ort kopiert.

Nun hat sich in der Praxis herausgestellt, dass eine Datei gelegentlich noch nicht vollständig vorhande ist, wenn der Copy anläuft und somit nur zum Teil (wenn auch zum größten) kopiert wird. Grund dafür ist die Tatsache, dass die "Problemdatei" mit ca. 1GB deutlich größer ist als die letzte Datei mit 2kb und der openFT wohl nicht so sauber läuft, dass die letzte Datei erst gesendet wird wenn die anderen bereits vollständig übertragen wurden.

Da ich an den vorgelagerten Abläufen (Jobs / openFT / etc.) erst einmal nichts ändern möchte bzw. nur mit erheblich Aufwand etwas ändern kann würde ich gerne wissen ob jemand eine Möglichkeit kennt nach dem Copy die Dateien ohne große Schwierigkeiten zu vergleichen.

Ein Vergleich der Dateigröße würde meiner Meinung nach vollkommen ausreichen, der Inhalt müßte nicht geprüft werden.

Ich bin mir nicht sicher, ob dieses einfach mit dem Schalter /v erreicht werden kann, denn der Copy ist zu dem betroffen Zeitpunkt ja ohne Fehler und vollständig gelaufen (ERRORLEVEL =0), hat hierzu jemand Erfahrungen?

Oder besteht die Möglichkeit einen exclusiven Copy durchzuführen? Der müste doch fehlschlagen, da noch in die Quelldatei geschrieben wird?

Mit freundlichen Grüßen

André
Mitglied: stagatto
27.01.2006 um 13:43 Uhr
Um zwei Dateien zu vergleichen fällt mir spontan das Unix-Tool diff ein.

Damit können Text- und Binärdateien verglichen werden, bei einer Textdatei werden die Unterschiede ausgegeben, bei einer Binärdatei lediglich ob unterschiede bestehen.

Für Windows stellt cygwin eine entsprechende Toolsammlung parat. Habe aber leider keinen aktuellen Downloadlink.

stagatto
Bitte warten ..
Mitglied: stagatto
27.01.2006 um 13:48 Uhr
... hab den Link gefunden und unter Links hinzugefügt:

http://unxutils.sourceforge.net/

stagatto
Bitte warten ..
Mitglied: icsat
27.01.2006 um 15:19 Uhr
Danke, ich würde jedoch am liebsten ohne zusätzliche Tools auskommen.
Bitte warten ..
Mitglied: icsat
27.01.2006 um 15:55 Uhr
Danke,

eigentlich war der Tip ganz gut.
Die Bewertung hatte ich leider schon abgegeben nachdem ich es auf meinem Windows NT Client probiert habe und es nicht funktioniert hat, da der FOR dort kein %%~zI unterstützt. Auf dem 2003 Server scheint dieses jedoch der Fall zu sein, ich bekomme aber trotzdem kein Ergebnis, denn %%~zI scheint leer zu sein.
Hast Du da eine Idee?
Bitte warten ..
Mitglied: icsat
27.01.2006 um 17:17 Uhr
Hallo derCaptain,

noch mal Danke für Deinen Tip.

Wer lesen kann ist klar im Vorteil! Nachdem ich die Anführungszeichen in der Klammer weggenommen habe hat es auch mit der Ausgabe funktioniert. Das Problem mit der Lösung mittels "for /R %PATH% ..." ist jedoch die Tatsache, dass ab %PATH% in dem angegebenen Verzeichnis und allen unterverzeichnissen nach der Datei gesucht wird, es also zu vielen Ergebnissen kommt wobei nur das erste Ergebnis einen brauchbaren Wert hat.

Dennoch hat Dein Tip mich auf meine Problemlösung gebracht:
for /D %%I in ("%DATEI1%") do for /D %%J in ("%DATEI2%") do if %%~zI == %%~zJ echo Die Dateien sind gleich groß! > %LOG%
for /D %%I in ("%DATEI1%") do for /D %%J in ("%DATEI2%") do if not %%~zI == %%~zJ echo Die Dateien sind nicht gleich groß! > %LOG%

MfG André
Bitte warten ..
Mitglied: Biber
27.01.2006 um 19:03 Uhr
Moin icsat,

nur als Fußnote dazu:
a) Du kannst lange Zeilen im Batch "dokumentiert" oder "undokumentiert" trennen:

"dokumentiert" durch "Klammerung" nach dem "...DO":
for /D %%I in ("%DATEI1%") do (
for /D %%J in ("%DATEI2%") do (
if %%~zI == %%~zJ echo Die Dateien sind gleich groß! > %LOG%
))

"undokumentiert": durch Eingabe von Caret ("^") und RETURN direkt dahinter. An beliebiger (Leer-) Stelle.

b) Etwas sinnvoller wird das LogFile, wenn Du den Dateinamen mit in die LogZeile schreibst.
Und mit ">>" das Logfile weiter- statt mit ">" überschreibst
... echo Die Dateien %%~nI sind nicht gleich groß! >> %LOG%

HTH Biber
Bitte warten ..
Mitglied: icsat
28.01.2006 um 13:13 Uhr
Hallo Biber,

zu a)
ist mir bekannt, ist wirklich 'ne hübsche Sache und meines Wissens durch MS nicht wirklich dokumentiert.

zu b)
die beiden Zeilen sollten nur zeigen, wie ich den Vergleich gelöst habe. Es ist mir schon klar, dass es wenig Sinn macht ein Log-Datei mit jedem Eintrag neu anzulegen

Gruß André
Bitte warten ..
Mitglied: Biber
28.01.2006 um 13:27 Uhr
Moin André,

>>zu b) die beiden Zeilen sollten nur zeigen, wie ich den Vergleich gelöst habe.
>>Es ist mir schon klar, dass es wenig Sinn macht ein Log-Datei mit jedem Eintrag neu anzulegen


...ich habe auch gestern lange überlegt, ob ich Punkt b) dazuschreibe... dachte mir schon, dass das nur ein Beispiel sein sollte.
Der Hinweis war mehr gedacht für nachfolgende Mitleser.

Also bitte nicht als persönlich gemeinte Unterstellung auffassen - war nicht so gemeint.

Schönes Wochenende
Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: fpschultze
01.02.2006 um 00:52 Uhr
Hallo André,

vielleicht ist Robocopys Monitor-Funktion etwas für Dich. Es gibt zwei Parameter:

/MON:n = MONitor source; run again when more than n changes seen.
/MOT:m = MOnitor source; run again in m minutes Time, if changed.

Viele Grüße
Peter
Bitte warten ..
Mitglied: icsat
01.02.2006 um 06:53 Uhr
Hallo Peter,

Robocopy habe ich auch schon gesehen, mich aber nicht weiter damit befasst.
Die o.g. Lösung funktioniert für meine Zwecke hoffentlich ausreichend.

Zu der Robocopy Lösung würde mich interessieren
a) läuft ein Script hinter dem Befehl weiter und der Copy wird unabhängig vom Script wiederholt oder steht das Script m Minuten?
b) würde der Robocopy nach dem zweiten mal erneut nach m Minuten auf Veränderungen prüfen?

Gruß André
Bitte warten ..
Mitglied: icsat
02.02.2007 um 19:03 Uhr
Hallo,

die oben angegebene Lösung funktioniert von der Sache her sehr gut hat mein eigentliche Problem aber nicht gelöst, da der Fehler weiterhin aufgetreten ist.

Falls es jemanden interessiert:
Die Ursache lag in einem Fehler im openFT Job. Die Dateien die Übertragen werden setzen alle ein Flag sobald sie vollständig übertragen wurden und die letzte Datei, die auch das Verarbeitungsscript startet wird erst übertragen wenn all Flags gesetzt sind. Leider war das Flag für die "Problemdatei" immer gesetzt, so dass die Verarbeitung auch gestartet wurde wenn Datei noch gar nicht übertragen war.

Ich werde die Frage mal als gelöst kennzeichen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch vergleich von zwei dateien
gelöst Frage von realdavegerBatch & Shell6 Kommentare

Hallo, nach Jahrelangem zugucken, habe ich jetzt schlussendlich eine Frage welche ich selbst stelle. Ich versuche 2 zeiten aus ...

Batch & Shell

Zwei Werte vergleichen in einer Batch-Datei

gelöst Frage von PatrickHeissi10Batch & Shell1 Kommentar

Ich möchte die beiden Variablen %eins% und %zwei% vergleichen haben diese den gleichen Wert haben-> goto einszwei Danke

Batch & Shell

Ordner Größe auslesen und vergleichen

Frage von GeretConditBatch & Shell4 Kommentare

Hallo Liebe mit Administratoren/innen, ich habe mal wieder ein Script Problem. Heute ist es aber mal Linux, ich habe ...

Batch & Shell

Vergleich zweier CSV-Dateien über Powershell-Script

Frage von Philipp711Batch & Shell4 Kommentare

Hallo, ich habe eine Verständnisfrage zur "Programmierung" eines Powershell-Scripts. Es geht darum, zwei Listen miteinander zu vergleichen bzw. herauszufinden ...

Neue Wissensbeiträge
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 1 TagDrucker und Scanner3 Kommentare

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 2 TagenRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 4 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 5 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows 10
WIN 10 1803 - LTE Stick kein Internetzugriff
Frage von killtecWindows 1023 Kommentare

Hallo, ich habe mit einem Windows 10 1803 Probleme mit einem LTE-Stick. Das gleiche Problem ist bei mehreren Rechnern ...

CPU, RAM, Mainboards
Xeon E5620: noch schnell genug?
Frage von ahussainCPU, RAM, Mainboards19 Kommentare

Hallo allerseits, ich habe die Möglichkeit, aus Restbeständen einen Tower mit Xeon E5620 CPU und 24 GB RAM zu ...

Datenbanken
MySQL Datenbank Import Aufgabe für mehrere .csv dateien
Frage von Marcel1989Datenbanken18 Kommentare

Hi, ich komm nicht weiter. Ich hab auf einem Windows Server 2012 r2 eine MariaDB/MySQL laufen. Nun soll diese ...

Peripheriegeräte
Steckdose(nleiste) mit Schwellwert für off und mit externem Taster
Frage von ahstaxPeripheriegeräte16 Kommentare

Hallo, ich suche eine Steckdose oder Steckdosenleiste mit externem Taster und Schwellwerterkennung. Zu realisieren ist folgendes: Ein PC soll ...