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-ID: 112101

Url: https://administrator.de/forum/verschachtelte-for-schleife-gibt-faelschlicherweise-dateinamen-aus-112101.html

Ausgedruckt am: 23.12.2024 um 01:12 Uhr

Aldeeer
Aldeeer 23.03.2009 um 10:00:55 Uhr
Goto Top
Hallo,

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

Gruß Aldeeer
TheUntouchable
TheUntouchable 23.03.2009 um 10:05:11 Uhr
Goto Top
Hallo Aldeeer,

leider behebt das den Fehler nicht.. Trotzdem danke!
paulepank
paulepank 23.03.2009 um 11:00:26 Uhr
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
TheUntouchable
TheUntouchable 23.03.2009 um 11:05:31 Uhr
Goto Top
Danke für den Tipp paulepank, jetzt funktionierts!
paulepank
paulepank 23.03.2009 um 11:21:37 Uhr
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