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
Please also mark the comments that contributed to the solution of the article
Content-Key: 366282
Url: https://administrator.de/contentid/366282
Printed on: May 7, 2024 at 02:05 o'clock
2 Comments
Latest comment
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'