kixtart - Variable in Variable
Hallo,
mein Kixscript (Kixtart + kixforms) liest eine externe ini-datei aus und bastelt sich aus den Werten in dieser Textdatei Variablen zum setzen. Ziel ist es sämtliche KOnfiguration nur über INI-daten zu bewerkstelligen und nicht mehr den Code selbst anfassen zu müssen.
bsp ini-datei
das klappt auch soweit ganz gut
wenn ich jedoch Variablen verarbeiten möchte, die sich auf bestehende Variablen beruhen (z.B. @userid, @wksta, %Username% etc.)
und diese Werte unnerhalb der Variables.ini setze, so liest kixtart diese nicht als Variable, sondern als fixen wert aus
bsp ini-datei
Variable;EmpirumServer;Server1;
Variable;DefServer;Server2/Vol1:;
Variable;EmpirumUser;@@USERID
Die Schreibweisen @@USERID oder %%Username%% innerhalb der variables.ini bringen auch nichts.
hat jemand eine Idee ?
mein Kixscript (Kixtart + kixforms) liest eine externe ini-datei aus und bastelt sich aus den Werten in dieser Textdatei Variablen zum setzen. Ziel ist es sämtliche KOnfiguration nur über INI-daten zu bewerkstelligen und nicht mehr den Code selbst anfassen zu müssen.
bsp ini-datei
Variable;EmpirumServer;Server1;
Variable;DefServer;Server2/Vol1:;
der Teil des KixScriptes, der das ganze verarbeitet:
Function VariableSettings()
$VariableSettingsButton.Value=1
Progress( "Setze variablen")
If Exist($FileLocation + "\variables\variables.ini")
DBGMessage ("Info","Setze Variablen:")
If Open(3,$FileLocation + "\variables\variables.ini") = 0
$VZeile = ReadLine(3)
WHILE @ERROR = 0
If Instr ($VZeile,"Variable")
$VVariable = Split($VZeile, ";") [1]
$VWert= Split($VZeile, ";") [2]
ENDIF
Gosub variablesSet
$VZeile = ReadLine(3)
LOOP
CLOSE(3)
ENDIF
goto EndeVariablesSet
:variablesSet
;DBGMessage ("Info","Setze variable $VVariable = $VWert")
writevalue("HKEY_CURRENT_USER\Volatile Environment","$VVariable","$VWert","REG_SZ")
; SET "$VVariable=$VWert"
SELECT
CASE @ERROR = 0
DBGMessage ("Info","Variable $VVariable = $VWert ")
CASE @ERROR = 2
DBGMessage ("Fehler","Variable $VVariable fuer $VWert konnte nicht gesetzt werden")
$Errorflag=TRUE
CASE 1
DBGMessage ("Fehler","Unbekannter Fehler [@Error] beim Setzen der Variable von $VVariable zu $VWert")
$Errorflag=TRUE
ENDSELECT
Return
:EndeVariablesSet
$VariableSettingsButton.Value=0
$VariableSettingsButton.Enabled =0
sleep 8
EndFunction
das klappt auch soweit ganz gut
wenn ich jedoch Variablen verarbeiten möchte, die sich auf bestehende Variablen beruhen (z.B. @userid, @wksta, %Username% etc.)
und diese Werte unnerhalb der Variables.ini setze, so liest kixtart diese nicht als Variable, sondern als fixen wert aus
bsp ini-datei
Variable;EmpirumServer;Server1;
Variable;DefServer;Server2/Vol1:;
Variable;EmpirumUser;@@USERID
Die Schreibweisen @@USERID oder %%Username%% innerhalb der variables.ini bringen auch nichts.
hat jemand eine Idee ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 83892
Url: https://administrator.de/contentid/83892
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
1 Kommentar
Die Schreibweisen @@USERID oder %%Username%%
innerhalb der variables.ini bringen auch
nichts.
hat jemand eine Idee ?
innerhalb der variables.ini bringen auch
nichts.
hat jemand eine Idee ?
Hi,
leider blicke ich nicht ganz durch - aber einen (unschönen) Tipp hätte ich vielleicht...
echo %username% > %username%.ini
copy /b deine ini + %username%.ini login.ini
Kix laufen lassen
del /q login.ini
Bei vielen gleichzeitigen Anmeldungen, könnte das aber ein Problem werden.
Außer du startest das Kix gleich mit einem temporären variablen .ini File - wie z.B %username%.ini