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 Vergleich Liste von Dateiname mit String - wenn nicht gleich, füge den Inhalt der Datei 1 der Datei 2 zu

Mitglied: Jim-Knopf

Jim-Knopf (Level 1) - Jetzt verbinden

30.07.2009, aktualisiert 18:16 Uhr, 3856 Aufrufe, 6 Kommentare

Ich bin neu hier und habe heute einige Stunden anhand der diversen Profi-Tipps versucht mein Anliegen zu lösen. Leider ohne Erfolg - daher folgend meine Problemstellung:

Ausgangslage:
In einem Verzeichnis liegen 0, 1 oder 2 Dateien mit der Endung ZIP.
Die Dateinamen haben die Bezeichnung TIF_20090730.ZIP
bzw. die Datei vom Vortag TIF_20090729.ZIP
Es gibt Konstellationen bei der nur die Datei TIF_20090730.zip vorhanden ist oder nur die Datei TIF_20090729.ZIP, beide oder gar keine.

Ziel:
Wenn am Tag Date (20090730) nur TIF_20090730.ZIP vorhanden ist, ist alles OK (Batch beenden)
Wenn am Tag Date (20090730) TIF_20090729.ZIP & TIF_20090730.ZIP vorhanden ist, soll der Inhalt der Datei TIF_20090729.ZIP in die Datei TIF_20090730.ZIP übernommen und die Datei TIF_200907229.ZIP gelöscht werden.
Wenn am Tag Date (20090730) nur TIF_20090729.ZIP vorhanden ist, soll diese auf TIF_20090730.ZIP umbenannt werden.
Wenn keine ZIP-Datei vorhanden ist, ist auch alles OK (Batch beenden)

Wir haben versucht mit dem comand "for" eine Schleife zu schreiben, die alle ZIP-Dateien auf das Datum prüft und dann je nach Resultat die nötigen Schritte ausführt. Bereits der Abgleich hat nicht geklappt.

Für jede Hilfestellung (auch Teilösungen des Problems) bin ich sehr froh!

Gruss
Jim Knopf
Mitglied: bastla
30.07.2009 um 18:55 Uhr
Auch Dir, Jim-Knopf, ein mindestens genauso freundliches Hallo und Willkommen im Forum!

Schematisch könnte das etwa so aussehen:
01.
@echo off & setlocal 
02.
pushd "Z:\ZIP-Dateien" 
03.
set "Pre=TIF_" 
04.
 
05.
set "Heute=%date:~-4%%date:~-7,2%%date:~-10,2% 
06.
set "ZIPHeute=%Pre%%Heute%.zip" 
07.
 
08.
if not exist "%ZIPHeute%" ( 
09.
    for /f "delims=" %%i in ('dir /b /a-d "%Pre%*.zip" 2^>nul') do echo ren "%%i" "%ZIPHeute%" 
10.
    popd 
11.
    goto :eof 
12.
13.
 
14.
for /f "delims=" %%i in ('dir /b /a-d "%Pre%*.zip" 2^>nul^|findstr /i /v /c:"%ZIPHeute%"') do ( 
15.
    echo "%%i" entpacken 
16.
    echo entpackte Dateien zu "%ZIPHeute%" hinzufuegen 
17.
18.
popd
Vorausgesetzt wird dabei, dass es tatsächlich nur 0 bis 2 Dateien entsprechend dem vorgegebenen Benennungsschema geben kann, und dass von zweien eine "TIF_Tagesdatum.zip" heißt.

Das Hinzufügen der gestrigen zur heutigen Datei wird nur durch Textausgaben simuliert, da mir der genaue Sinn der Aktion bzw die zur Verfügung stehenden Mittel (ZIP-Programm) nicht bekannt sind ...

Grüße
bastla

[Edit] Noch etwas umformuliert ... [/Edit]
Bitte warten ..
Mitglied: Jim-Knopf
31.07.2009 um 08:48 Uhr
Hallo bastla

Super herzlichen Dank!
Ich bin grad' dran das ganze mal zu verstehen... ... wie macht ihr das bloss!!!
Hab' mich aber mit den ZIP vertan:

Es handelt sich um ganz normale Textfiles (das mit dem Zippen kommt erst später und hab' ich schon umgesetzt). Könnte man den Inhalt mit type in eine Variable oder so übernehmen und dann der anderen Datei zuweisen bzw. eben renamen?

NB: Grund für die ganze Aktion:
Die Tagesverarbeitung ist um 22 Uhr fertig und die Daten werden abgeholt. Theoretisch kann nun einer kommen und nach 22 Uhr nochmals eine Datei erzeugen. Das wird vermutlich in 100 Jahre nie vorkommen aber - wir haben's ja mit der IT zu tun - wird es garantiert geschehen, wenn wir den Fall nicht abfangen. Da wir mit Datumstempel arbeiten würde dann vom gleichen Tag zwei Mal ein File mit gleichem Namen erstellt. Natürlich könnte man nun bei der Erzeugung einen Zeitstempel verwenden. Da aber ein externer Partner nur mit Statischen Filenamen umgehen kann, versuchen wir diese etwas aufwändige Lösung umzusetzen.

Danke und Gruss
Jim
Bitte warten ..
Mitglied: bastla
31.07.2009 um 09:41 Uhr
Hallo Jim-Knopf!

Ein bloßes Anfügen der alten an die neue Datei ließe sich mit einem
01.
type "%%i">>"%ZIPHeute%"
als Ersatz für die Zeilen 15 und 16 machen.

Grüße
bastla
Bitte warten ..
Mitglied: Jim-Knopf
31.07.2009 um 11:05 Uhr
Hallo Bastla

Herzlichen Dank.
Ich hab das Skript kurz auf meine Umgebung angepasst und getestet. Funktioniert alles einwandfrei. Kleiner Schönheitsfehler: der Rename wird auch versucht, wenn keine Dateien vorhanden sind. Stört aber nicht.

Der Batch funktioniert aufgrund der Schlaufe auch, wenn mehrere ältere Dateien rumliegen (sofern die heutige Datei da ist).

@echo off & setlocal
pushd "C:\temp\data\"
set "Pre=xxx_"

set "Heute=%date:~-4%%date:~-7,2%%date:~-10,2%

set "txtHeute=%Pre%%Heute%.txt"

if not exist "%txtHeute%" (
for /f "delims=" %%i in ('dir /b /a-d "%Pre%*.txt" 2^>nul') do ren "%%i" "%txtHeute%"
echo ren "%%i" "%txtHeute%"
popd
goto :eof
)

for /f "delims=" %%i in ('dir /b /a-d "%Pre%*.txt" 2^>nul^|findstr /i /v /c:"%txtHeute%"') do (
type "%%i">>"%txtHeute%"
del "%%i"
)
popd

Macht richtig spass hier. Dir natürlich einen ganz speziellen Dank

Gruss
Jim
Bitte warten ..
Mitglied: bastla
31.07.2009 um 11:14 Uhr
Hallo Jim-Knopf!
Kleiner Schönheitsfehler: der Rename wird auch versucht, wenn keine Dateien vorhanden sind.
Dürfte es eigentlich nicht geben (es wird ja vorher mit "dir" das Vorhandensein einer Datei "xxx_*.txt" geprüft), aber um den Fehler wenigstens zu "verstecken", kannst Du den "ren"-Befehl so schreiben
ren "%%i" "%txtHeute%" 2>nul
- damit wird die Fehlermeldung unterdrückt.

Grüße
bastla
Bitte warten ..
Mitglied: Jim-Knopf
31.07.2009 um 12:29 Uhr
Perfekt! Super Lösung.
Danke.
Jim
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell Script um Inhalt von Dateien zu vergleichen

Frage von zamsi7Batch & Shell14 Kommentare

Hallo an alle, hoffe ich bin hier richtig Ich würde ein Powershell script benötigen, welche mir hilft Dateien in ...

Batch & Shell

Dateien automatisch anhand von 2 komplizierten Dateinamen-Strings verschieben

gelöst Frage von clevermBatch & Shell3 Kommentare

Hallo, ich bräuchte eine Batch oder Batch-Powershell Kombination, die mir 1.000ende Dateien täglich anhand des Dateinamens verschiebt (einsortiert): Ich ...

Batch & Shell

Vergleiche Strings in CMD

gelöst Frage von it4baerBatch & Shell4 Kommentare

Hallo, ich möchte gerne Strings in CMD vergleichen (also Windows Eingebaaufforderung) genau gesagt übergebe ich 1. eine Parameter meinBatch.cmd ...

PHP

PHP String inhalte wiedergeben

gelöst Frage von DasPossumPHP7 Kommentare

Hallo zusammen, ich arbeite gerade an ein kleines Script das mir Linuxbenutzer auf den Webserver ausgeben soll. Bisher habe ...

Neue Wissensbeiträge
Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 32 MinutenMicrosoft

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 18 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 1 TagiOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...