89485
Goto Top

Variablen aus .ini in Batch einbinden

Guten Morgen,

was ich versuchen wollte, Variablen, die ich in einer .ini Datei zuvor festlege, in ein Batchfile einbinden.

a) geht des überhaupt, wenn ja wie?

b) und wenn ja, wie muss man dann genau die Variablen deklarieren? wie in einem Batch?

Danke schon mal

Grüße

Batchliebhaber

Content-Key: 141207

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

Ausgedruckt am: 28.03.2024 um 21:03 Uhr

Mitglied: bastla
bastla 22.04.2010 um 08:32:07 Uhr
Goto Top
Hallo Batchliebhaber!

Wenn Du die Variablen in der "ini"-Datei so hinterlegst:
var_Test=123456
var_Wert=mit Leerzeichen
kannst Du sie ganz direkt mit
for /f "delims=" %%i in (D:\Deine.ini) do set "%%i"
einlesen und setzen.

Im Gegenzug erlaubt ein einfaches
set var_ >D:\Deine.ini
das Speichern aller Variablen, die mit "var_" beginnen.

Grüße
bastla

[Edit] @77559 & Biber: Tschuldigung, wird - vor allem um die Zeit - kaum wieder vorkommen ... face-wink [/Edit]
Mitglied: 77559
77559 22.04.2010 um 08:39:57 Uhr
Goto Top
Moin moin Batchliebhaber,

das hängt vom Aufbau deiner Ini-Datei ab. Eini Windows-Ini-Datei hat üblicherweise Sektionsnamen in eckigen Klammern.
Wenn du das selber bestimmst ist es trivial. Wenn die Variablen einen gemeinsamen Prefix haben kann man sie so einfach speichern:
Set Prefix >Deine.Ini

Zum Einlesen der Variablen reicht dieser Einzeiler (in einer Batch sind die %-Zeichen zu verdoppeln):
For /f tokens=1,* delims==" %A in (Deine.Ini) do Set %A=%B

Ungetestet

Gruß
LotPings

Mist, Bastla war ausgeschlafener face-wink
Mitglied: Biber
Biber 22.04.2010 um 08:44:08 Uhr
Goto Top
Moin Batchliebhaber,

ergänzend zu bastla [Edit] und LotPinx [/Edit] noch eine andere Demo am CMD-Prompt:
>echo [MeineSection]>>meineini.ini

>echo ; eine Kommentarzeile mit ein paar == (Gleichheitsszeichen) == >>meineini.ini

>echo ; neuevar=wert>>meineini.ini

>echo neuevar=wert>>meineini.ini

>for /f "tokens=1,2* delims==" %i in (meineini.ini) do @if "%j" NEQ "" echo Set "%i=%j"

>type meineini.ini
[MeineSection]
; eine Kommentarzeile mit ein paar == (Gleichheitsszeichen) ==
; neuevar=wert
neuevar=wert

>for /f "tokens=1,2* delims==" %i in (meineini.ini) do @if "%j" NEQ "" echo Set "%i=%j"
Set "neuevar=wert"
Ich schreibe ein paar Zeilen in eine Textdatei namens "meineini.ini" und versuche mich an den gewohnten Aufbau einer Win[dows].ini-Datei anzulehnen.

  • Alle Zeilen, die mit einem ";" (Semikolon) beginnen werden praktischerweise ignoriert (Standardeinstellung der FOR-Anweisung).
  • [Sectionnamen] werden ignoriert, da sie keine 2 Token enthalten, wenn "delims sind Gleichheitszeichen" angesagt sind.
  • Leerzeilen werden ohnehin ignoriert.

Grüße
Biber
[Edit] Mist, bastla und LotPings hatten schon einen Koffein-Vorsprung.[/Edit]]
Mitglied: AmVerzweifeln
AmVerzweifeln 15.03.2018 um 14:01:06 Uhr
Goto Top
Hallo bastla,

voarb, ich bin absolut Anfänger in Batchschreiben.

Ich habe versucht deinen Code einzusetzen, scheitere jedoch daran, das mein Pfad in welchem die ini steht ein Leerzeichen hat.
Hast du da mal nen Tip für mich wie ich das Löse?

Grüße

Am Verzweifeln