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!
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!
Please also mark the comments that contributed to the solution of the article
Content-Key: 132993
Url: https://administrator.de/contentid/132993
Printed on: April 25, 2024 at 22:04 o'clock
3 Comments
Latest comment
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