Variablen aus ini an Batchdateien übergeben
Hallo zusammen,
ich übegebe momentan die benötigten Variablen (hauptsächlich Pfade) am Anfang der Batchdatei.
Bsp.
set war=wartung
set soft=software
usw.
Nun brauche ich aber mittlerweile diese Variablen in mehreren Batchdateien und muß im Falle einer Änderung auch jede betroffene Batchdatei editieren.
Gibt es eine Möglichkeit, dies aus einer einzigen Datei (ini?) auszulesen?
Ich habe bis jetzt in der Suche leider nur Beiträge gefunden, wo auf eine einzelne Zeile in der ini gesprungen wird.
Vielen Dank schonmal
Jörg
ich übegebe momentan die benötigten Variablen (hauptsächlich Pfade) am Anfang der Batchdatei.
Bsp.
set war=wartung
set soft=software
usw.
Nun brauche ich aber mittlerweile diese Variablen in mehreren Batchdateien und muß im Falle einer Änderung auch jede betroffene Batchdatei editieren.
Gibt es eine Möglichkeit, dies aus einer einzigen Datei (ini?) auszulesen?
Ich habe bis jetzt in der Suche leider nur Beiträge gefunden, wo auf eine einzelne Zeile in der ini gesprungen wird.
Vielen Dank schonmal
Jörg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 57207
Url: https://administrator.de/contentid/57207
Ausgedruckt am: 05.11.2024 um 15:11 Uhr
6 Kommentare
Neuester Kommentar
Moin Baruse,
siehe zum Beispiel bastlas Lösung im ersten Beitrag unten in der Liste unter "Verwandte Beiträge" Wert aus ini File einer Variable übergeben.
Gruss
Biber
siehe zum Beispiel bastlas Lösung im ersten Beitrag unten in der Liste unter "Verwandte Beiträge" Wert aus ini File einer Variable übergeben.
Gruss
Biber
ich mache s folgendermassen: schreibe die variablen in eine separate batchdatei (z.b. variablen.cmd) und rufe diese mit "call PFAD\variablen.cmd" dann in der jeweiligen batchdatei auf.
EDIT: Sorry, habe nich so genau gelesen, es geht ja um ini-dateien. ob das damit auch geht, keine ahnung, habe ich noch nicht probiert ;)
EDIT: Sorry, habe nich so genau gelesen, es geht ja um ini-dateien. ob das damit auch geht, keine ahnung, habe ich noch nicht probiert ;)
Moin baruse,
entweder Du machst es gezielt mit Find/Findstr, wie vom bastla skizziert, auf einzelne Zeilen bezogen
Wenn denn in der Ini mit dem Aufbau "Key=value" auch ein Key namens "Memory" existiert, hast Du dann das Value nach dem Gleichheitszeichen in der Variable %MyMemory%.
- oder-
Du rufst wie von Connor1980 vorgeschlagen eine zweite .bat-Datei mit "Call mySettings.bat" auf, in der steht:
Variante 2 setzt dann halt immer ALLE Variablen global - wenn irgendein anderes Programm gleichnamige Variablen gesetzt hätte, würden die blind überbügelt werden.
Da solltest Du also nicht so allgemeine Variablennamen wie %username% oder %path% verwenden, sonst hast Du Seiteneffekte.
Also besser:
Funktionieren wird beides
gruss
Biber
entweder Du machst es gezielt mit Find/Findstr, wie vom bastla skizziert, auf einzelne Zeilen bezogen
for /f "tokens=2 delims==" %%i in ('findstr "Memory=" C:\Temp\install.ini') do set myMemory=%%i
- oder-
Du rufst wie von Connor1980 vorgeschlagen eine zweite .bat-Datei mit "Call mySettings.bat" auf, in der steht:
::MySettings.bat
@echo off
Set war=wartung
Set wir=wirtung
...
Variante 2 setzt dann halt immer ALLE Variablen global - wenn irgendein anderes Programm gleichnamige Variablen gesetzt hätte, würden die blind überbügelt werden.
Da solltest Du also nicht so allgemeine Variablennamen wie %username% oder %path% verwenden, sonst hast Du Seiteneffekte.
Also besser:
::MySettings.bat
@echo off
Set mySet_war=wartung
Set mySet_wir=wirtung
...
Funktionieren wird beides
gruss
Biber