Batch Daten vergleichen (Mehrzahl von Datum)
Hallo Administratoren,
ich versuche gerade in Batch einen Script zu schreiben der aus einer .txt Datei ein Datum ausliest und dieses mit dem Aktuellen vergleicht.
Und wenn das Datum in der txt Datei abgelaufen ist (also älter als das Aktuelle) soll gesagt werden "Datum ist abgelaufen"!
Ich weiß aber nicht wie ich das umsetzten soll.
Hätte jemand eine Idee?
Gruß Motorcross
ich versuche gerade in Batch einen Script zu schreiben der aus einer .txt Datei ein Datum ausliest und dieses mit dem Aktuellen vergleicht.
Und wenn das Datum in der txt Datei abgelaufen ist (also älter als das Aktuelle) soll gesagt werden "Datum ist abgelaufen"!
Ich weiß aber nicht wie ich das umsetzten soll.
Hätte jemand eine Idee?
Gruß Motorcross
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 29.01.2010 um 19:43:08 Uhr
Batch Daten vergleichen (Mehrzahl von Datum)
Wir könnten auch ganz unverkrampft "Batch Datumswerte vergleichen" schreiben...Content-ID: 134698
Url: https://administrator.de/contentid/134698
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo Motorcross!
Was hoko (sehr wahrscheinlich) wissen wollte (und weswegen auch meine Antwort so allgemein gehalten war): In welchem Format steht das Datum in der Datei?
Ebenfalls sinnvoll wäre es, die Schreibweise für das aktuelle Datum in Deinem System zu posten - bei mir liefert ein
zB
Für die ersten beiden Variante könntest Du das gewünschte Format etwa so erzeugen:
Anmerkung: Für Datümer ab 2100 wird diese Vorgangsweise leider eines Updates bedürfen ...
Grüße
bastla
[Edit] Da Du die Variable %Datum% für den aus der Textdatei eingelesenen Wert verwenden willst, auf %Heute% geändert [/Edit]
Was hoko (sehr wahrscheinlich) wissen wollte (und weswegen auch meine Antwort so allgemein gehalten war): In welchem Format steht das Datum in der Datei?
Ebenfalls sinnvoll wäre es, die Schreibweise für das aktuelle Datum in Deinem System zu posten - bei mir liefert ein
echo %date%
29.01.2010
, während es auf einem anderen System gerne auch 29.01.10
oder Fr, 29.01.2010
sein kann.Für die ersten beiden Variante könntest Du das gewünschte Format etwa so erzeugen:
for /f "tokens=1-3 delims=." %%a in ("%date%") do set "Heute=20%%c%%b%%a"
set "Heute=%Heute:~-8%
Grüße
bastla
[Edit] Da Du die Variable %Datum% für den aus der Textdatei eingelesenen Wert verwenden willst, auf %Heute% geändert [/Edit]
Servus,
@Motorcross:
deine letze Frage ist doch rein theoretischer Natur... Bastla kriegt das hin, der löst auch komplexere Fälle.
Aber dein Einstieg in die Thematik war doch:
Die Tipps, wie du das hinbekommst - hast du doch erhalten?
Spiel doch einfach mal ein bisschen mit Bastlas Zeile.
Da könnte dann ungefähr so was heraus kommen:
Wobei du sicherlich den Unterschied / die Spielart schon erkannt hast - Bastla schreibt jeweils zwei %% - ich nur eines
Denn Bastlas Zeile ist für eine Batch
Meine "nur" zum Spielen in der Dosbox.
Und wenn du selber weiterspielst und dein Ergebnis mit Bastlas erstem Tipp kombinierst - kommst du von ganz alleine auf die Lösung.
Gruß
@Motorcross:
deine letze Frage ist doch rein theoretischer Natur... Bastla kriegt das hin, der löst auch komplexere Fälle.
Aber dein Einstieg in die Thematik war doch:
ich versuche gerade in Batch einen Script zu schreiben
Die Tipps, wie du das hinbekommst - hast du doch erhalten?
Spiel doch einfach mal ein bisschen mit Bastlas Zeile.
Da könnte dann ungefähr so was heraus kommen:
for /f "tokens=1-3 delims=." %a in ("%date%") do set "Datum=%a.%b.%c"
Wobei du sicherlich den Unterschied / die Spielart schon erkannt hast - Bastla schreibt jeweils zwei %% - ich nur eines
Denn Bastlas Zeile ist für eine Batch
Meine "nur" zum Spielen in der Dosbox.
Und wenn du selber weiterspielst und dein Ergebnis mit Bastlas erstem Tipp kombinierst - kommst du von ganz alleine auf die Lösung.
Gruß
Hallo Motorcross!
Und das
war dann wirklich so schwierig?
Wenn das Datumsformat in der Datei und im System übereinstimmt (wie bei Dir: Jahr jeweils 4-stellig), auch noch kürzer:
Grüße
bastla
Und das
@echo off & setlocal
set /p datum=<test.txt
for /f "tokens=1-3 delims=." %%a in ("%datum%") do set "DatumAusDatei=20%%c%%b%%a"
set "DatumAusDatei=%DatumAusDatei:~-8%"
for /f "tokens=1-3 delims=." %%a in ("%date%") do set "Heute=20%%c%%b%%a"
set "Heute=%Heute:~-8%"
if %DatumAusDatei% lss %Heute% echo Error
Wenn das Datumsformat in der Datei und im System übereinstimmt (wie bei Dir: Jahr jeweils 4-stellig), auch noch kürzer:
@echo off & setlocal
set /p datum=<test.txt
for /f "tokens=1-3 delims=." %%a in ("%datum%") do set "DatumAusDatei=%%c%%b%%a"
for /f "tokens=1-3 delims=." %%a in ("%date%") do set "Heute=%%c%%b%%a"
if %DatumAusDatei% lss %Heute% echo Error
bastla