theuntouchable
Goto Top

Verschachtelte For-Schleife gibt fälschlicherweise Dateinamen aus

Hallo Jungs!

Hab mal wieder ne kleine Frage:

Ich möchte das aus einer Datei PC Namen herrausgelesen werden. Jedoch enthält die Datei auch noch andere Einträge, und die Anzahl der PCs kann jedesmal variieren.

Die Datei sieht so aus:
config.ini
;=============================
;   NetSender Konfiguration
;=============================

[Optionen]
;Wird automatisch gesetzt wenn das Programm das erste mal gestartet wurde und die Einweisung bestätigt wird.
EinleitungGelesen=1

[Computerliste]
;Geben Sie hier die Ziel-PCs in folgender Form ein:
;1=Computer1
;2=Computer2
1=Computer1
2=Computer2

;Geben Sie hier die Anzahl der Computer an die sich in der Computerliste befinden
AnzahlPCs=2

[ENDE]

Der Batchscript zum auslesen so:
for /f "Tokens=2 Delims== " %%i in ('FIND "AnzahlPCs" Config.ini') do set pcanzahl=%%i  
for /L %%i IN (1 1 %pcanzahl%) do for /f "Tokens=2 Delims== " %%a in ('FIND "%%i=" Config.ini') do echo %%a  

Das Problem ist, das ich hierbei folgende Ausgabe bekomme:
CONFIG.INI
Computer1
CONFIG.INI
Computer2

Warum bekomm den ini Namen mit als Ausgabe?

Content-Key: 112101

Url: https://administrator.de/contentid/112101

Printed on: May 5, 2024 at 01:05 o'clock

Member: Aldeeer
Aldeeer Mar 23, 2009 at 09:00:55 (UTC)
Goto Top
Hallo,

ich bin mir nicht Sicher aber versuch dein Glück mal mit "findstr /n /r "AnzahlPCs" Config.ini".

Gruß Aldeeer
Member: TheUntouchable
TheUntouchable Mar 23, 2009 at 09:05:11 (UTC)
Goto Top
Hallo Aldeeer,

leider behebt das den Fehler nicht.. Trotzdem danke!
Member: paulepank
paulepank Mar 23, 2009 at 10:00:26 (UTC)
Goto Top
Hallo TheUntouchable,

wenn du bei deiner Lösung bleiben willst, dann entferne beim Delimiter das Leerzeichen.
for /f "Tokens=2 Delims==" %%i in ('FIND "AnzahlPCs" Config.ini') do set pcanzahl=%%i  
for /L %%i IN (1 1 %pcanzahl%) do for /f "Tokens=2 Delims==" %%a in ('FIND "%%i=" Config.ini') do echo %%a  

Hintergrund: FIND gibt immer noch den Dateinamen mit aus.

cu paulepank
Member: TheUntouchable
TheUntouchable Mar 23, 2009 at 10:05:31 (UTC)
Goto Top
Danke für den Tipp paulepank, jetzt funktionierts!
Member: paulepank
paulepank Mar 23, 2009 at 10:21:37 (UTC)
Goto Top
eine Anmerkung dazu hab ich noch:

wenn man eine bestimmte Zeichenkette in einer Zeile sucht, ist FINDSTR die bessere(richtige) Lösung.
Mit FIND suchst du nur Datei(en) die eine bestimmten Zeichenkette enthalten.
Da du ja bereits weißt, daß in der Config.ini die gesuchte Zeichenkette enthalten ist, reicht in der
1. FOR-Schleife auch ein ('TYPE Config.ini')

cu paulepank