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

Frage Entwicklung Batch & Shell

Mitglied: icsat

icsat (Level 1) - Jetzt verbinden

27.01.2006, aktualisiert 02.02.2007, 10361 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: derCaptain
27.01.2006 um 13:45 Uhr
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
Zwei TXT Datei vergleichen und zusammen eine Liste erstellen
gelöst Frage von 103148Batch & Shell3 Kommentare

Hallo, ich erstelle zwei Dateien, eine jede Abend mit dem Inhalt online.txt HOST PC001 ist online HOST PC023 ist ...

Batch & Shell
Zwei Verzeichnise Vergleichen und Nicht vorhandene Datei löschen
gelöst Frage von KodaCHBatch & Shell4 Kommentare

Guten Morgen Ich suche eine Möglichkeit um zwei Verzeichnisse ohne deren Unterverzeichnisse zu vergleichen und eine nicht vorhandene Datei ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 6 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 6 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 9 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...