Datum zweier Dateien auslesen und vergleichen
Hallo zusammen!
Bin noch sehr neu hier und auch auf dem Gebiet der BAT-Dateien, daher stehe ich vor einem Rätsel, was mir auch durch stundenlanges Suchen hier und über Google nicht lösbarer wurde...
Ich möchte das Datum, nur das Datum ohne Uhrzeit, von zwei Dateien miteinander vergleichen und daraus das Ergebnis:
JA, gleiches Datum
oder eben
NEIN, unterschiedliches Datum
erhalten und in einer txt-Datei ausgeben lassen.
Tja, wie gesagt, ich komm da leider nicht wirklich weiter...
Danke sehr im Voraus,
LFS
Bin noch sehr neu hier und auch auf dem Gebiet der BAT-Dateien, daher stehe ich vor einem Rätsel, was mir auch durch stundenlanges Suchen hier und über Google nicht lösbarer wurde...
Ich möchte das Datum, nur das Datum ohne Uhrzeit, von zwei Dateien miteinander vergleichen und daraus das Ergebnis:
JA, gleiches Datum
oder eben
NEIN, unterschiedliches Datum
erhalten und in einer txt-Datei ausgeben lassen.
Tja, wie gesagt, ich komm da leider nicht wirklich weiter...
Danke sehr im Voraus,
LFS
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101195
Url: https://administrator.de/forum/datum-zweier-dateien-auslesen-und-vergleichen-101195.html
Ausgedruckt am: 23.04.2025 um 01:04 Uhr
11 Kommentare
Neuester Kommentar
Hallo LFS1993 und willkommen im Forum!
Das sollte etwa so gehen:
Grüße
bastla
Das sollte etwa so gehen:
@echo off & setlocal
for %%i in ("D:\Datei1.txt") do @for /f %%d in ("%~ti") do set "Dat1=%%d"
for %%i in ("D:\Datei2.txt") do @for /f %%d in ("%~ti") do set "Dat2=%%d"
if "%Dat1%"=="%Dat2%" (
echo JA, gleiches Datum
) else (
echo NEIN, unterschiedliches Datum
)>D:\Ergebnisdatei.txt
bastla
Moin LFS1993,
um das IF-ELSE-Konkrokt herum sollten auch noch Klammern, dann passt es.
In der zweiten Zeite, wo jetzt "Set out=nul:" steht, kann eine Ausgabedatei definiert werden.
Zum Testen reicht ja die Definition von "nul:" bzw. "con:" um das Umleiten zu Testen.
Bei Angabe von "nul:" sollte in keinem der beiden Fälle irgendwas auf dem Bildschirm ("con:") erscheinen, bei Angabe von "con:" in beiden Fällen.
Hier ein "con:"-Beispiel:
Grüße
Biber
[Edit] Okay, wieder fast zu langsam....[/Edit]
um das IF-ELSE-Konkrokt herum sollten auch noch Klammern, dann passt es.
::----snipp SameDate.bat
@echo off & setlocal
Set "out=nul:"
for %%i in ("%~1") do @for /f %%d in ("%%~ti") do set "Dat1=%%d"
for %%i in ("%~2") do @for /f %%d in ("%%~ti") do set "Dat2=%%d"
(if "%Dat1%"=="%Dat2%" (
echo JA, gleiches Datum
) else (
echo NEIN, unterschiedliches Datum
))>%out%
Zum Testen reicht ja die Definition von "nul:" bzw. "con:" um das Umleiten zu Testen.
Bei Angabe von "nul:" sollte in keinem der beiden Fälle irgendwas auf dem Bildschirm ("con:") erscheinen, bei Angabe von "con:" in beiden Fällen.
Hier ein "con:"-Beispiel:
>e:\schnipsel\samedate x.bat x.log
NEIN, unterschiedliches Datum
(=16:14:24 D:\temp=)
>e:\schnipsel\samedate x.bat x.bat
JA, gleiches Datum
Grüße
Biber
[Edit] Okay, wieder fast zu langsam....[/Edit]
Hallo LFS1993!
Sorry, war etwas unter Zeitdruck und der Batch dementsprechend dahingeschludert ...
So sollte es dann wirklich was werden:
[Edit] ... aber Bibers Version ist ohnehin besser, also nimm gleich diese. [/Edit]
Grüße
bastla
Sorry, war etwas unter Zeitdruck und der Batch dementsprechend dahingeschludert ...
So sollte es dann wirklich was werden:
@echo off & setlocal
for %%i in ("D:\Datei1.txt") do for /f %%d in ("%%~ti") do set "Dat1=%%d"
for %%i in ("D:\Datei2.txt") do for /f %%d in ("%%~ti") do set "Dat2=%%d"
if "%Dat1%"=="%Dat2%" (
>D:\Ergebnisdatei.txt echo JA, gleiches Datum
) else (
>D:\Ergebnisdatei.txt echo NEIN, unterschiedliches Datum
)
Grüße
bastla
Moin LFS1993,
egal, ob Du nun immer auf zwei bestimmte Dateinamen oder auf zwei als Parameter übergebene Dateinamen prüfen willst, die Mimik im Batch wäre halt jeweils ungefähr so:
Grüße
Biber
egal, ob Du nun immer auf zwei bestimmte Dateinamen oder auf zwei als Parameter übergebene Dateinamen prüfen willst, die Mimik im Batch wäre halt jeweils ungefähr so:
@Echo off & setlocal
IF NOT EXIST "D:\EinPfad\DeineDatei.xyz" (
echo Datei "D:\EinPfad\DeineDatei.xyz" nicht gefunden.
goto :eof
)
...{ und dito für die zweite Datei}
:: ---oder, bei der Zwei-Parameter-Variante --
IF NOT EXIST "%~1" (echo Datei "%~1" nicht gefunden.) && goto :eof
IF NOT EXIST "%~2" (echo Datei "%~2" nicht gefunden.) && goto :eof
...{und hier der Batch von oben}.
Grüße
Biber
Hallo LFS1993!
Kurze Frage: Warum probierst Du es nicht einfach aus?
Etwas ansehnlicher formatiert (könntest Du auch erreichen):
Grüße
bastla
Kurze Frage: Warum probierst Du es nicht einfach aus?
Etwas ansehnlicher formatiert (könntest Du auch erreichen):
if "%Dat1%"=="%Dat2%" (
echo JA
goto :allesbestens
)>allesbestens.txt else (
echo NEIN
goto :dastimmtwasnicht
)>dastimmtwasnicht.txt
echo Hierher kommst Du nie ...
:allesbestens
echo ok
goto :eof
:dastimmtwasnicht
echo nee
goto :eof
bastla
Hallo LFS1993!
... und solange es in einer Testumgebung (oder so vergleichsweise harmlos wie in diesem Beispiel) stattfindet, ist Angst wohl nicht nötig.
Grüße
bastla
... hier die Pferde scheu machen
ist ja nicht wirklich ein Problem, aber Du bringst Dich damit auch um die Chance, aus Deinen Fehlern zu lernen - gerade für Anfänger finde ich "learning by doing" unabdingbar ...... und solange es in einer Testumgebung (oder so vergleichsweise harmlos wie in diesem Beispiel) stattfindet, ist Angst wohl nicht nötig.
Grüße
bastla