Vergleich Liste von Dateiname mit String - wenn nicht gleich, füge den Inhalt der Datei 1 der Datei 2 zu
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121699
Url: https://administrator.de/forum/vergleich-liste-von-dateiname-mit-string-wenn-nicht-gleich-fuege-den-inhalt-der-datei-1-der-datei-2-zu-121699.html
Ausgedruckt am: 17.04.2025 um 23:04 Uhr
6 Kommentare
Neuester Kommentar
Auch Dir, Jim-Knopf, ein mindestens genauso freundliches Hallo und Willkommen im Forum!
Schematisch könnte das etwa so aussehen:
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]
Schematisch könnte das etwa so aussehen:
@echo off & setlocal
pushd "Z:\ZIP-Dateien"
set "Pre=TIF_"
set "Heute=%date:~-4%%date:~-7,2%%date:~-10,2%
set "ZIPHeute=%Pre%%Heute%.zip"
if not exist "%ZIPHeute%" (
for /f "delims=" %%i in ('dir /b /a-d "%Pre%*.zip" 2^>nul') do echo ren "%%i" "%ZIPHeute%"
popd
goto :eof
)
for /f "delims=" %%i in ('dir /b /a-d "%Pre%*.zip" 2^>nul^|findstr /i /v /c:"%ZIPHeute%"') do (
echo "%%i" entpacken
echo entpackte Dateien zu "%ZIPHeute%" hinzufuegen
)
popd
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]
Hallo Jim-Knopf!
- damit wird die Fehlermeldung unterdrückt.
Grüße
bastla
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 schreibenren "%%i" "%txtHeute%" 2>nul
Grüße
bastla