Datensätze vom Vortag per Batch aus Datei auslesen
Hallo,
ich versuche gerade per Batch eine Vergleichsoperation mit dem Vortagesdatum hinzubekommen. Leider bisher erfolglos.
Die Ausgangsdaten der Datei "kst_wechsel.txt" sehen z.B. wie folgt aus:
1240503/721-702,995000006 ,26.02.18,05:57, 1
1240503/721-788,995000006 ,26.02.18,05:58, 1
1240504/731-708,995000006 ,27.02.18,06:01, 1
Das angenommene aktuelle Datum ist der 27.02.18 und bisher wurden auch nur die aktuellen Datensätze benötigt und mit der u.a. Funktion erfolgreich in die Datei "kst_wechsel_akt0.txt" ausgegeben.
for /f "delims=" %%i in (d:\temp\kst_wechsel.txt) do (
set "zeile=%%i"
set "vergl=!zeile:~27,8!"
set "Datum=%date:~0,2%.%date:~3,2%.%date:~8,2%"
if "!Vergl!"=="!Datum!" echo %%i>>d:\temp\kst_wechsel_akt0.txt
)
Nun soll mit einem anderen Batch nach den Datensätzen des Vortages, also im Beispiel nach den Datensätzen vom 26.02.18 gesucht und ebenfalls eine Dateiausgabe erzeugt werden.
Versucht hatte ich das u.a. mit:
set /a "d=%date:~0,2%-1"
set "mj=%date:~3,2%.%date:~8,2%"
set "Datum=%d%.%mj%"
Isoliert betrachtet wird zwar mit diesem Batch der 26.02.18 errechnet, jedoch klappt das nicht mit dem Vergleich. Vielleicht hat ja jemand eine Idee...
Vielen Dank und Gruß
Markus
ich versuche gerade per Batch eine Vergleichsoperation mit dem Vortagesdatum hinzubekommen. Leider bisher erfolglos.
Die Ausgangsdaten der Datei "kst_wechsel.txt" sehen z.B. wie folgt aus:
1240503/721-702,995000006 ,26.02.18,05:57, 1
1240503/721-788,995000006 ,26.02.18,05:58, 1
1240504/731-708,995000006 ,27.02.18,06:01, 1
Das angenommene aktuelle Datum ist der 27.02.18 und bisher wurden auch nur die aktuellen Datensätze benötigt und mit der u.a. Funktion erfolgreich in die Datei "kst_wechsel_akt0.txt" ausgegeben.
for /f "delims=" %%i in (d:\temp\kst_wechsel.txt) do (
set "zeile=%%i"
set "vergl=!zeile:~27,8!"
set "Datum=%date:~0,2%.%date:~3,2%.%date:~8,2%"
if "!Vergl!"=="!Datum!" echo %%i>>d:\temp\kst_wechsel_akt0.txt
)
Nun soll mit einem anderen Batch nach den Datensätzen des Vortages, also im Beispiel nach den Datensätzen vom 26.02.18 gesucht und ebenfalls eine Dateiausgabe erzeugt werden.
Versucht hatte ich das u.a. mit:
set /a "d=%date:~0,2%-1"
set "mj=%date:~3,2%.%date:~8,2%"
set "Datum=%d%.%mj%"
Isoliert betrachtet wird zwar mit diesem Batch der 26.02.18 errechnet, jedoch klappt das nicht mit dem Vergleich. Vielleicht hat ja jemand eine Idee...
Vielen Dank und Gruß
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 366282
Url: https://administrator.de/contentid/366282
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar
Servus Markus.
als Batch
oder alternativ auch als Powershell-Einzeiler:
Grüße Uwe
als Batch
@echo off & setlocal
:: Datei
set "file=d:\temp\kst_wechsel.txt"
:: temporaere Datums-Berechnung
set "gTemp=%Temp%\calc.vbs"
echo g=DateAdd("d",-1,Date):WScript.Echo Right("0" ^&Day(g),2)^&"."^&Right("0" ^& Month(g),2)^& "." ^&Right(Year(g),2)>"%gTemp%"
for /f %%i in ('cscript //nologo "%gTemp%"') do set G=%%i
del "%gTemp%"
:: Datensätze von gestern finden und in Datei schreiben
findstr /c:",%G%," "%file%" >"d:\temp\kst_wechsel_akt0.txt"
(gc 'd:\temp\kst_wechsel.txt') -match ",$((get-date).AddDays(-1).ToString('dd\\.MM\\.yy'))," | sc 'd:\temp\kst_wechsel_akt0.txt'