Wie Umgebungsvariablen in einem Script einbinden?

  • also ich möchte



    erstmal diese beiden in die Umgebungsvariablen eintragen


    per hand weis ja Wintaste + pause

    erweitert dann auf Umgebungsvariablen bearbeiten usw aber muss ja auch anders gehen weis wer wie?

    Einmal editiert, zuletzt von Mitnick (18. Mai 2010 um 10:40)

  • mh ja das könnte sein


    [autoit]

    EnvUpdate ("PATH C:\sw\CDB\WorkspaceManager\bin\cdbwscall;C:\sw\CDB\WorkspaceManager\plugins\contact\integrations_app\proe\x86e_win64")

    [/autoit]


    sollte das so funktionieren? das er das in Path zufügt nichts anderes löscht?

  • hast du schonmal die hilfe gelesen?

    [autoit]

    EnvUpdate()

    [/autoit]

    hat keine parameter!!
    du kannst:

    Spoiler anzeigen
    [autoit]

    EnvSet("$PATH", "C:\sw\CDB\WorkspaceManager\bin\cdbwscall;C:\sw\CDB\WorkspaceManager\plugins\contact\integrations_app\proe\x86e_win64")
    While 1
    MsgBox(64, "Umgebungsvariable:", EnvGet("$PATH"))
    Sleep(1000)
    WEnd

    [/autoit]

    benutzen... das ist allerdings nur scriptintern... wenn du es über 2 scripts haben willst: ich such mal kurz die udf

    Edit1:
    HIER

  • Dann musst du natürlich den alten Wert auslesen, an diesen das neue anhängen und dann eintragen.
    Um das ganze dauerhaft zu setzen empfehle ich folgende Form:

    Spoiler anzeigen
    [autoit]

    $sNeuerWert = EnvGet("Path") & ';C:\sw\CDB\WorkspaceManager\bin\cdbwscall;C:\sw\CDB\WorkspaceManager\plugins\contact\integrations_app\proe\x86e_win64'

    [/autoit] [autoit][/autoit] [autoit]

    _SETENV("Path", $sNeuerWert)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _SETENV($sName, $sValue, $bGlobal = True)
    ;by AspirinJunkie
    If $bGlobal Then
    Local $sKey = "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
    Else
    Local $sKey = "HKCU\Environment"
    EndIf
    RegWrite($sKey, $sName, "REG_SZ", $sValue)
    If @error Then Return SetError(1, @error, False)
    EnvUpdate()
    Return True
    EndFunc

    [/autoit]
  • was willst du denn jetzt? wenn du 2 scripte miteinander komunizieren lassen willst, dann nehm die udf, absonsten amch es so wie von AspirinJunkie
    zu meinem schnipsel: das wiederholt sich, weil das in einer whileschleife ist -.- mit EnvGet/... habe ich noch nie gearbeitet, konnte also auch nicht viel dazu sagen
    [url=http://www.autoit.de/index.php?page=Thread&threadID=20203]hier nochmal der link zur udf[url]

  • @ Aspirin danke das hilft mir nun weiter so kann ich Arbeiten


    aber was mache ich nun wenn ich eine Neue Variable erstellen will?

  • mh habe versucht nun eine neue zu erstellen aber diese verschwindet immer wieder ich komme nicht weiter

  • Wenn du sie so einträgst verschwindet sie wieder?:

    Spoiler anzeigen
    [autoit]

    $sNeuerWert = "Testwert"

    [/autoit] [autoit][/autoit] [autoit]

    _SETENV("Test", $sNeuerWert)
    If @error Then MsgBox(48, "Fehler", "Konnte Umgebungsvariable nicht setzen" & @CRLF & "Fehlercode: " & @extended)

    [/autoit] [autoit][/autoit] [autoit]

    Func _SETENV($sName, $sValue, $bGlobal = True)
    ;by AspirinJunkie
    If $bGlobal Then
    Local $sKey = "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
    Else
    Local $sKey = "HKCU\Environment"
    EndIf
    RegWrite($sKey, $sName, "REG_SZ", $sValue)
    If @error Then Return SetError(1, @error, False)
    EnvUpdate()
    Return True
    EndFunc

    [/autoit]


    Hab es gerade nochmal getestet und die Variable "Test" existiert auch noch nach einem Neustart des Systems.