Batch-Problem

OP #2455816
Hallo Freunde,
bin neu hier und habe eine Frage.

Ich versuche mit einem Batch-File eine Zeile von einem INI-File zu lesen
und dann in einer Variablen zu speichern.
Ich bekomm das aber nur soweit hin, dass das ganze INI-File angezeigt
wird.
Hier mal der Code

for /f "tokens=2 delims==;" %%i in ('findstr "EHC_PF_8 ="
C:\INIC_Test_Automation\Flashersions\Flashversions.ini') do set
myMemory=%%i

wenn ich dann echo %myMemory% mache, wird alles angezeigt.
Wie gesagt ich will nur das eine Zeiel ausgegeben wird.

So Sieht das INI-File aus

[Parameters]
INIC_Version_PF_1 =N/A
INIC_Version_PF_2 =N/A
INIC_Version_PF_3 =N/A
INIC_Version_PF_4 =N/A
INIC_Version_PF_5 =N/A
INIC_Version_PF_6 =Hallo
INIC_Version_PF_7 =N/A
INIC_Version_PF_8 =N/A

Ich möchte z.B. dass die 6. Zeile ausgegeben wird.
also das "Hallo" (das "INIC_Version_PF_6 ="  nicht).

Wäre nett wen mir einer was schreiben könnte.
Ich denke, dass es nur eine Zeile Code sein dürfte.

Gruß Agit
Gast
was gibt denn

findstr "EHC_PF_8 
="C:\INIC_Test_Automation\Flashersions\Flashversions.ini"

aus? Dort sollte duch nur eine zeile rauskommen. Scheinbar kommt bei dir 
ja dort schon mehr raus, sonst würde ja die for schleife diese zeilen 
nicht bekommen.
OP
HI Peter,

Bei mir wird wenn ich das so mache wie ich gepostet habe immer der 
Letzte Wert des INI-Files Gelesen. Also Am obigen Beispiel:

                INIC_Version_PF_8 =N/A

in myMemory steht dann "N/A". Wie gesagt wollt ich aber die 6.Zeile, das 
"Hallo".


Gruß Agit
Das "/c" ist notwendig da ein Space im Suchbegriff vorkommt. Ohne den 
Parameter wird das Space als Trenner verwendet und jedes der Worte (also 
auch das Gleichheitszeichen) gesucht. Und da das "=" in fast jeder Zeile 
vorkommt, werden entsprechend viele Zeilen ausgegeben.
Sieh dir mal Ruby an - das läuft auf allen möglichen Plattformen, ist 
sehr mächtig und auch ganz hervorragend geeignet, um irgend welche 
Batch-Jobs zu erledigen, auch mit heftiger OS-Interaktion.

Dagegen kann der ganze halbgare M$-Batch-Mist abstinken, ohne daß ihn 
jemand vermißt...
OP
Hallo,

danke Volker daran habe ich gar nicht gedacht ;(.

Aber jetzt wirds verständlich.

Klappt alles wunderbar.

@UHU

hab schon ein wenig mit ruby gearbeitet. bin deiner meinungm dass es 
besser ist aber leider hat der Arbeitgeber was dagegen ;(.

Danke nochmal

Gruß Agit
Persönliche Seite
Volkmar Dierkes schrieb:
> Das "/c" ist notwendig da ein Space im Suchbegriff vorkommt.

Wobei dieses Leerzeichen in der Ini-Datei eigentlich nichts zu suchen 
hat. Die muss jemand von Hand erstellt haben, oder mit merkwürdig 
programmierter Software.

Die Win32-API-Funktionen jedenfalls (WritePrivateProfileString &co) 
schreiben keine Leerzeichen vor oder hinter das Gleichheitszeichen.

Die lesenden Funktionen tolerieren so etwas, weswegen es nicht stört.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.