Batch - Letzte Zeile auslesenUPDATE
Hallo zusammen,
ich habe hier einen Windows Server 2003 EE laufen. Dort läuft unter anderem auch der RIS-Dienst. Nun würde ich jede Art Änderung (auto. Softwareinstallation / Deinstallation) auf dem Client in einer Datei festgehalten (oeminfo.ini). Die Zeile sieht vom Aufbau her so aus:
So nun wird z.B. wieder eine Software automatisch installiert. Dann soll der Batch die letzte Zeilt auslesen und aus der 1 eine 2 machen (halt immer + 1). Danach soll die Line2 eingefügt werden.
Gibt's da ne Möglichkeit??
[UPDATE]
So lese ich die letzte Zeile aus:
Gruß
Dani
ich habe hier einen Windows Server 2003 EE laufen. Dort läuft unter anderem auch der RIS-Dienst. Nun würde ich jede Art Änderung (auto. Softwareinstallation / Deinstallation) auf dem Client in einer Datei festgehalten (oeminfo.ini). Die Zeile sieht vom Aufbau her so aus:
Line1=Wurde autoamtisch installiert.
So nun wird z.B. wieder eine Software automatisch installiert. Dann soll der Batch die letzte Zeilt auslesen und aus der 1 eine 2 machen (halt immer + 1). Danach soll die Line2 eingefügt werden.
Gibt's da ne Möglichkeit??
[UPDATE]
So lese ich die letzte Zeile aus:
@echo off
:: Letzte Zeile in %Var% speichern
for /F "Tokens=*" %%i in (oeminfo.ini) do Set var=%%i
Echo Letzte Zeile...: %var%
Gruß
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 42420
Url: https://administrator.de/forum/batch-letzte-zeile-auslesenupdate-42420.html
Ausgedruckt am: 08.04.2025 um 22:04 Uhr
3 Kommentare
Neuester Kommentar
Moin Dani,
für eine einstellige "LfdNr" so wie von miniversum skizziert - sonst vielleicht mit einer der Varianten unten:
Output:
HTH Biber
für eine einstellige "LfdNr" so wie von miniversum skizziert - sonst vielleicht mit einer der Varianten unten:
::------snipp NextLfdNrDemo.bat
:start
@echo off & setlocal enableDelayedExpansion
:: ---- hier kann die Variable %var% so wie oben gesetzt werden:
:: ---- for /F "Tokens=*" %%i in (oeminfo.ini) do Set var=%%i
Echo DEMO ..folgendes wird in den Variablen %%var1%% und %%var2%% unterstellt:
set "var1=Line128=Hier soll der Präfix vor der Lfdnr fest verdrahtet immer gleich 'Line' sein."
set "var2=Update437=Beispiel für einen anderen Text als 'Line' vor der LfdNr."
Echo DEMO ...Gemeinsamkeit soll sein: Links vor dem Gleichheitszeichen ist "Text+lfdNr".
(echo vorher:) & set var
REM Strategie a)
REM Falls der der Text in "Text+lfdNr" immer "Line" ist....
REM Für Strategie a) brauche ich KEIN EnableDelayedExpansion.
for /f "tokens=1* delims==Line" %%i in ("%var1%") do for /f %%a in ('Set /a %%i+1') do Set var1=Line%%a=%%j
REM Strategie b)
REM ..ich weiß nicht, wie der Text in "Text+lfdNr" aussieht, aber lfdnr ist immer eine Zahl kleiner als z.B. 999
for /f "delims==" %%x in ("%var2%") do for /l %%i in (1,1,999) do echo %%x|find "%%i">nul && set /a "lfdnr=%%i"
for /f %%i in ('set /a lfdnr+1') do set var2=!var2:%lfdnr%=%%i!
(echo nachher:) & set var
goto :eof
::------snapp NextLfdNrDemo.bat
Output:
>NextLfdNrDemo
DEMO ..folgendes wird in den Variablen %var1% und %var2% unterstellt:
DEMO ...Gemeinsamkeit soll sein: Links vor dem Gleichheitszeichen ist "Text+lfdNr".
vorher:
var1=Line128=Hier soll der Präfix vor der Lfdnr fest verdrahtet imer gleich 'Line' sein.
var2=Update437=Beispiel für einen anderen Text als 'Line' vor der LfdNr.
nachher:
var1=Line129=Hier soll der Präfix vor der Lfdnr fest verdrahtet imer gleich 'Line' sein.
var2=Update438=Beispiel für einen anderen Text als 'Line' vor der LfdNr.
HTH Biber