Einen Eintrag in einer .cfg hinzufügen (mit fortlaufender Nummer), aber wie?
Hallo zusammen,
ersteinmal vielen Dank für dieses klasse Forum. Es hat mir schon oft in Sachen Batch schreiben geholfen ohne selbst Fragen stellen zu müssen.
Allerdings konnte ich die Lösung für mein jetziges Problem nicht finden.
Es geht um eine Datei namens "scenery.cfg" (vielleicht kennt sie der eine oder andere, ist Teil des Flight Suimulator 2004)
In dieser Datei werden Scenerien im FS angemeldet. Ein Beispieleintrag wäre:
[Area.109]
Title=QuitoFS9
Layer=109
Active=TRUE
Required=FALSE
Local=SimMarket\QuitoFS9
Remote=
Ich würde nun gern eine Batch erstellen, die mir einen neuen Eintrag am Ende der .cfg erstellt. Dabei muss die Batch erkennen welches der letzte Eintrag in der scenery.cfg ist (in diesem Falle eben [Area.109])
Bis auf Layer=XXX , der die gleiche Zahl wie [Area.XXX] haben soll, sollen die anderen Parameter wie Title=, Active= usw. direkt in der Batch festgelegt werden.
Alles in allem sollte die Batch also in etwa so etwas schreiben :
[Area.*letzter Eintrag+1*]
Title=*steht in der Batch*
Layer=*gleich Area*
Active=TRUE
Required=FALSE
Local=*steht in der Batch*
Remote=
Ich hoffe mir kann jemand von euch helfen, jetzt schonmal vielen Dank!
ersteinmal vielen Dank für dieses klasse Forum. Es hat mir schon oft in Sachen Batch schreiben geholfen ohne selbst Fragen stellen zu müssen.
Allerdings konnte ich die Lösung für mein jetziges Problem nicht finden.
Es geht um eine Datei namens "scenery.cfg" (vielleicht kennt sie der eine oder andere, ist Teil des Flight Suimulator 2004)
In dieser Datei werden Scenerien im FS angemeldet. Ein Beispieleintrag wäre:
[Area.109]
Title=QuitoFS9
Layer=109
Active=TRUE
Required=FALSE
Local=SimMarket\QuitoFS9
Remote=
Ich würde nun gern eine Batch erstellen, die mir einen neuen Eintrag am Ende der .cfg erstellt. Dabei muss die Batch erkennen welches der letzte Eintrag in der scenery.cfg ist (in diesem Falle eben [Area.109])
Bis auf Layer=XXX , der die gleiche Zahl wie [Area.XXX] haben soll, sollen die anderen Parameter wie Title=, Active= usw. direkt in der Batch festgelegt werden.
Alles in allem sollte die Batch also in etwa so etwas schreiben :
[Area.*letzter Eintrag+1*]
Title=*steht in der Batch*
Layer=*gleich Area*
Active=TRUE
Required=FALSE
Local=*steht in der Batch*
Remote=
Ich hoffe mir kann jemand von euch helfen, jetzt schonmal vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 132993
Url: https://administrator.de/forum/einen-eintrag-in-einer-cfg-hinzufuegen-mit-fortlaufender-nummer-aber-wie-132993.html
Ausgedruckt am: 27.04.2025 um 12:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo bladis und willkommen im Forum!
Soferne die Nummer verlässlich der letzten mit "Layer=" beginnenden Zeile entnommen werden kann, sollte das so gehen:
Grüße
bastla
Soferne die Nummer verlässlich der letzten mit "Layer=" beginnenden Zeile entnommen werden kann, sollte das so gehen:
@echo off & setlocal
set "cfg=D:\Pfad\scenery.cfg"
set "Nr="
for /f "tokens=2 delims==" %%i in ('findstr /b "Layer=" "%cfg%"') do set /a "Nr=%%i"
if not defined Nr echo Keine Nummer gefunden! & goto :eof
set /a Nr+=1
(echo\
echo [Area.%Nr%]
echo Title=*steht in der Batch*
echo Layer=%Nr%
echo Active=TRUE
echo Required=FALSE
echo Local=*steht in der Batch*
echo Remote=
)>>"%cfg%"
bastla