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

Frage Entwicklung Batch & Shell

Mitglied: monk71

monk71 (Level 1) - Jetzt verbinden

25.05.2010, aktualisiert 16:41 Uhr, 2944 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
Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 1 StundeVerschlüsselung & Zertifikate

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 12 StundenWindows 102 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 14 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner3 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen13 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...