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

Wie kann ich via Batch zwei Dateien vergleichen und ZIPen

Mitglied: monk71

monk71 (Level 1) - Jetzt verbinden

25.05.2010, aktualisiert 16:41 Uhr, 2946 Aufrufe, 3 Kommentare

Hallo,
Ich bin neu hier und hoffe einer kann mir helfen da ich den Wald vor lauter Bäumen nicht mehr sehe.

Ich versuche einen Batch zu schreiben, welcher mir Dateien auf verschiedenen Servern an Hand des Präfixes vergleicht.
Wenn der Präfix gleich ist, soll diese Datei von Server A nach Server B verschoben werden.
Danach sollen diese beiden Dateien in ein neu erstelltes Verzeichnis verschoben/kopiert werden. Das neue Verzeichnis hat den Selben Namen wie der Präfix der beiden Dateien.
Nun möchte ich noch, das der Batch durch jedes neue Verzeichnis geht und die beiden enthaltenen Dateien zusammen mit 7ZIP komprimiert und diese ZIP Datei dann in einen bestimmten Ordner zur Archivierung ablegt.

Folgenden Code habe ich schon.
01.
  
02.
@echo off & setlocal  
03.
set "source=C:\TEMP\Neuer Ordner"  
04.
set "dest=D:\PLAN"  
05.
set "ext=dhp" 
06.
set "ext2=txt"  
07.
 
08.
for %%f in ("%dest%\*.txt") do ( 
09.
    if exist "%source%\%%~nf.dhp" move "%source%\%%~nf.dhp" "%dest%\" 
10.
	 
11.
	if not exist D:\"%%~nf" md D:\PLAN\"%%~nf" 
12.
	if exist "%dest%\%%~nf.dhp" copy "%dest%\%%~nf.txt" D:\PLAN\"%%~nf" 
13.
	if exist "%dest%\%%~nf.dhp" copy "%dest%\%%~nf.dhp" D:\PLAN\"%%~nf" 
14.
	 
15.
16.
 
17.
For /F "Delims=" %%f in ('Dir /B/A-D "%dest%\*.*"') Do call :ZipIt "%%~fA"  
18.
 
19.
:ZipIt  
20.
Set "Zip=ARCHIV%~n1.zip"  
21.
echo ZIP = %ZIP% 
22.
Set "Zip2=%~n1"  
23.
"C:\Programme\7-Zip\7z.exe" u "D:\PLAN\ZIPFILES_to_ARCHIVE\%ZIP%" "%dest%\%Zip2%.*"  
24.
 



Bis jetzt schaffe ich es die Dateien zu vergleichen,ein neues Verzeichnis zu erstellen und die Dateien in das neue Verzeichnis zu kopieren.
Wenn ich versuche die Dateien zu verschieben, läuft das Script nicht ganz durch, wenn es mehr als zwei Dateien sind.
Außerdem finde ich nicht den Trick, wie ich dem Script sage, das es durch die neu und nur durch die neuen Verzeichnisse laufen soll und die Dateien darin packen soll.
Bis jetzt nimmt 7ZIP nur die original Dateien,da sie ja nicht verschoben sind. Sie müssen aber Verschoben werden, damit ich so die kontrolle habe das keine Datei doppelt überprüft wird. Es kommen ja jeden Tag neue Dateien auf beiden Servern hinzu.

Ich hoffe mir kann jemand von euch helfen.

Gruß
Monk
Mitglied: LotPings
25.05.2010 um 15:23 Uhr
Hallo Monk,

willkommen im Forum,

auf den ersten Blick fällt mir auf das vor dem Label :Zipit eine Zeile mit Goto :Eof fehlt.

Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen Codetags in der Formatierungshilfe

Ansonsten durchschaue ich deine Struktur noch nicht so ganz.

Gruß
LotPings
Bitte warten ..
Mitglied: monk71
25.05.2010 um 15:34 Uhr
Hallo LotPings

ich habe den Code mal formatiert.
wozu brauche ich den ein Eof??
Bitte warten ..
Mitglied: LotPings
25.05.2010 um 16:03 Uhr
Zitat von monk71:
ich habe den Code mal formatiert.
Sieht schön bunt aus, aber die PHP Syntax passt nicht so ganz zu den Batch Elementen, type=PFP und die <? ?> wieder rausnehmen

wozu brauche ich den ein Eof??
Weil der Hauptbatch nach der For Schleife sonst mit "leerem" {%1} in die Subroutine Zipit hineinläuft.

Folgendes ist mir aufgefallen:
  • In D:\Plan liegen .Txt deren Namen du mit der Ext dhp in %Source% probierst und falls vorhanden nach %Dest% verschiebst.
  • Wenn es diesen Namen nicht als Ordner im Root von D: gibt legst du ihn unterhalb von D:\Plan an.

  • Der if in Zeile 12 ist witzlos, das ist deine Ausgangsbedingung.
  • In 17 beziehst du dich beim Dir auf %%~nf das zu diesem Zeitpunkt ausserhalb der ersten Schleife nicht existiert.

Vielleicht passt diese vereinfachte Version:

01.
@echo off & setlocal 
02.
set "source=C:\TEMP\Neuer Ordner" 
03.
set "dest=D:\PLAN" 
04.
set "ext=dhp" 
05.
set "ext2=txt" 
06.
set 7z="%ProgramFiles%\7-Zip\7z.exe" 
07.
set "Arc=D:\PLAN\ZIPFILES_to_ARCHIVE\ARCHIV" 
08.
 
09.
for %%f in ("%dest%\*.txt") do if exist "%source%\%%~nf.dhp" ( 
10.
  move "%source%\%%~nf.dhp" "%dest%\" 
11.
  if not exist D:\"%%~nf" md D:\PLAN\"%%~nf" 
12.
  copy "%dest%\%%~nf.txt" D:\PLAN\"%%~nf\" 
13.
  copy "%dest%\%%~nf.dhp" D:\PLAN\"%%~nf\" 
14.
  %7z% u "%ARC%%~nf.zip" "%dest%\%%~nf.*" 
15.
)
Gruß
LotPings

Edit: der call ist versehentlich stehemgeblieben, entfernt.
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

Batch vergleiche Dateien mit Zeitstempel

gelöst Frage von Streuner1Batch & Shell5 Kommentare

Hallo, ich möchte mit einer batch in einem Ordner Dateien mit einem Zeitstempel suchen, vergleichen, kopieren und löschen. Möglichkeiten: ...

Batch & Shell

Batch Vergleichen von Dateien

gelöst Frage von BlaberBatch & Shell2 Kommentare

Hallo Leute, ich habe ein kleines Problem bei einer Batch-Datei. In dieser versuche ich zwei Text-Dateien miteinander zu vergleichen, ...

Neue Wissensbeiträge
Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 4 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 17 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 19 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 19 StundenMicrosoft12 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server31 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...