HI!
Hab früher Jahrelag in Quickbasic Programmiert, und tus heute noch wenn ich schnell mal en Komandozeilen Tool brauche.
Mir ist leider kein Befehl bekannt mit dem man Systhemvariablen lesen oder setzen kann. Hätte es auch nie gebraucht.
ABER mir ist ein kleiner Workaround eingefallen der dir vielleicht weiterhilft:
Es gibt ja den Shell befehl, mit dem man einen neuen Komandozeileninterpreter starten und ein programm (bzw Batchfile) starten kann. Und es gibt unter Dos den Befehl Set mit dem man entweder alle Variablen anzeigen oder neue setzen kann. Also einfach im programm ein Batchfile schreiben indem set (und der Parameter steht), das Batchfile mit shell ausführen. (Und nachher wieder löschen)
Ich hab dir hier ein BeispielProgramm geschrieben, es ist nicht perfekt aber ich glaube es gibt dir eine Vorstellung von dem was ich meine.
-----------------------------------------
'##Eine Variable setzen
OPEN "c:\Variable.bat" FOR OUTPUT AS #1 'Eine Datei zum Schreiben öffnen
PRINT #1, "@echo off" 'Damit am Bildschirm der Befehl nicht angezeigt wird
PRINT #1, "Set " + Set$ 'Set und die Variable + Wert der gesetzt werden soll zb: PATH=C:\windows
CLOSE #1
SHELL "c:\Variable.bat" 'Ausführen (wirklich setzen)
SHELL "del c:\Variable.bat" 'Und wieder löschen
'##ENDE Variable setzen
'##Variable Auslesen
CLS
varname$ = "PROMPT"
OPEN "c:\Variable.bat" FOR OUTPUT AS #1 'Eine Datei zum Schreiben ”ffnen
PRINT #1, "@echo off" 'Damit am Bildschirm der Befehl nicht angezeigt wird
'Set ohne Parameter gibt alle Variablen am Bildschirm aus und wir schreiben alles in die Datei Variablenb.txt
PRINT #1, "Set > c:\Variablen.txt"
CLOSE #1
SHELL "c:\Variable.bat" 'Ausfhren (wirklich setzen)
'jetzt k”nnen wir daqs Textfile ”ffenen und nach Variablen suchen
OPEN "C:\variable.txt" FOR INPUT AS #1
DO
LINE INPUT #1, ein$ 'Zeilenweise einlesen aus der Datei
'Varname enthält den Variablennamen den wir suchen und wir prüfen ob der anfang der Zeile mit dem Namen den wir suchen übereinstimmt
IF MID$(ein$, 1, LEN(varname$)) = varname$ THEN
'Wir haben die Variable im Text gefunden und schreiben den wert in Varwert$
varwert$ = RIGHT$(ein$, LEN(ein$) - LEN(varname$) - 1)
gefunden = 1 'und raus aus der Schleife
END IF
LOOP UNTIL EOF(1) OR gefunden = 1
CLOSE #1
IF gefunden = 1 THEN 'Haben wir was gefunden ?
PRINT varname$ + "=" + varwert$ 'dann gib den Wert aus
ELSE
PRINT "Variable nicht gefunden" 'nix gefunden
END IF
SHELL "del c:\Variable.bat" 'Und wieder löschen
SHELL "del c:\Variable.txt" 'Und wieder löschen
'##ENDE Variable Auslesen
-----------------------------------------
Ich hoffe das hilft dir weiter!
Wenn du noch Fragen hast scheu dich nicht zu fragen.
------------------
__________________
|»»»»»SONIC««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯