husana

Bat-Datei erstellen um damit zahlen aus datein zu kopieren und in eine .txt schreiben

Hallo. Ich bin neu hier und kenn mich noch nicht so mit bat-programierung aus. Hoffe das mit hier jemand helfen kann?

Hier meine Frage:
Habe den Ordner "Beispiel". In diesem sind mehrere Unterordner mit Namen AA, AB, AC, AD, AE usw.
In jedem dieser Unterordner ist eine Datei "test.ini" drin. Innerhalb dieser "test.ini" steht in der 10.Zeile "Terminal = 10" (Jeder Unterordner (AA, AB usw.) hat dort eine andere Nr.)

Möchte nun eine Bat-Datei erstellen, die nur diese Nr. ausliest und in ein Textdokument einfügt.

Diese sollte dann so aussehen:

AA - 10
AB - 15
AC - 18
usw.

Danke
husana
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 150602

Url: https://administrator.de/forum/bat-datei-erstellen-um-damit-zahlen-aus-datein-zu-kopieren-und-in-eine-txt-schreiben-150602.html

Ausgedruckt am: 28.04.2025 um 23:04 Uhr

bastla
bastla 08.09.2010 um 14:55:37 Uhr
Goto Top
Hallo husana und willkommen im Forum!

Soferne die Zeile 10 die einzige Zeile ist, die mit "Terminal = " beginnt, könnte das (ungetestet) so gehen:
@echo off & setlocal
set "Ordner=D:\Beispiel"  
set "Liste=D:\Textdokument.txt"  

del "%Liste%" 2>nul  
for /d %%i in ("%Ordner%\*.*") do if exist "%%i\test.ini" for /f "tokens=3" %%a in ('findstr /b /c:"Terminal = " "%%i\test.ini"') do >>"%Liste%" echo %%~nxi - %%a  
Mit dem ersten "for" werden alle Unterordner (die dann als %%i zur Verfügung stehen) abgegrast, und das zweite "for" zerlegt die gefundene Zeile anhand des Standardtrennzeichens "Leerzeichen" und liefert den 3. Bestandteil ("token") als %%a ...

Infos zu den Befehlen erhältst Du mit "Befehl /?", zB
findstr /?
[Edit] Mit %%~nxi sichergestellt, dass nur der Ordnername in die Liste geschrieben wird. [/Edit]

Grüße
bastla
77559
77559 08.09.2010 um 22:04:57 Uhr
Goto Top
Hallo Bastla,

findstr kann doch auch rekuriv suchen, wäre dies nicht einfacher:
@echo off & setlocal
set "Ordner=D:\Beispiel"  
set "Liste=D:\Test\Textdokument.txt"  
Pushd %Ordner%
del "%Liste%" 2>nul  
for /F "tokens=1-4 delims=\:=" %%A in ( 'findstr /S /B /C:"Terminal = " test.ini ' ) Do >>"%Liste%" Echo.%%A -%%D  
PopD

Gruß
LotPings
bastla
bastla 08.09.2010 um 22:18:46 Uhr
Goto Top
Hallo LotPings!

Wenn es keine weiteren Unterordner mit möglichen Fundstellen gibt, sicher der bessere Ansatz face-smile ...

Grüße
bastla
husana
husana 09.09.2010 um 10:16:40 Uhr
Goto Top
Guten Morgen

Habe es heute morgen endlich geschafft, nach dem ich gestern verzweifelt aufgegeben habe!!!

Vielen Dank an meine Helfer ;)

Hier mein fertige Batch:

@echo off & setlocal
set "Ordner=D:\Beispiel"
set "Liste=D:\Test\Textdokument.txt"
pushd %Ordner%
del "%Liste%" 2>nul
for /d %%i in ("%Ordner%\*.*") do if exist "%%i\test.ini" for /f "tokens=3" %%a in ( 'findstr /b /c:"Terminal = " "%%i\test.ini"' ) do >>"%Liste%" echo %%~nxi - %%a
popd

Gruß
husana