Systemvariablen über Kommandozeile setzen

  • #1
B

Björn_2

Bekanntes Mitglied
Themenersteller
Dabei seit
09.07.2004
Beiträge
305
Reaktionspunkte
0
Hallo zusammen,

ich möchte Systemvariablen über die Kommandozeile setzen. Dafür habe ich zwei Tools gefunden (setx.exe und setenv.exe)
Die Tools haben nur einen Nachteil:
Existiert die Systemvariable schon, so wird sie einfach überschrieben und der Wert nicht hinten angehangen.

Wie schaffe ich es, dass der neue Wert hinzugefügt wird?

Ich hatte das schon mal über eine bat-Datei probiert, bin aber nicht dahinter gekommen.

Gruß
Björn
 
  • #2
Björn_2 schrieb:
Wie schaffe ich es, dass der neue Wert hinzugefügt wird?

da braucht man eigentlich kein tool dazu ... im cmd gibst du z.b.

set PATH=%PATH%;c:\Programme

mit echo %PATH% kannst du dann prüfen, ob c:\programme angehängt wurde ...

greetz

hugo
 
  • #3
Damit wird es aber doch nur in der aktuellen Konsolensession sichtbar und nicht in der Registry gespeichert, oder?

Ich möchte quasi den Schritt über Systemsteuerung --> System --> Umgebungsvariablen per Kommando ausführen
 
  • #4
hp schrieb:
Björn_2 schrieb:
Wie schaffe ich es, dass der neue Wert hinzugefügt wird?
set PATH=%PATH%;c:\Programme
mit echo %PATH% kannst du dann prüfen, ob c:\programme angehängt wurde ...

mit setx sieht es so aus:
Code:
setx PATH %PATH%;c:\Programme
die Variable gilt dann im ganzen System, nicht nur in dieser Konsole. :)
 
  • #5
So hatte ich das mal ausprobiert, aber setx.exe hat das ganze wie %PATH%;c:\Programme interpretiert; es wurde also %PATH% nicht aufgelöst :(
 
  • #6
Ich könnte doch eigentlich einfach den alten Wert von PATH in einer Batch-Variablen speichern,
Schreibe den hinzuzufügenden Wert ebenfalls in eine Variable und
konkateniere einfach die beiden Variablen zu einer neuen Variablen, die ich dann dem Aufruf setx oder setenv mitgebe.

Doch wie kann ich den Wert von PATH in einer Batch-Variablen speichern und wie konkateniere ich zwei Variablen?
 
  • #7
steht doch fast schon oben in meinem post, statt c:\programme nimmst du hat eine variable zb. %PATH_NEU%

set PATH_NEU=
set PATH_NEU=C:\Programme
set PATH=%PATH%;%PATH_NEU%

und fertig ... dann die progs den pfad neu in die reg schreiben lassen, falls das mit hilfe von variablen geht ...

setx %PATH% oder setenv %PATH%

greetz

hugo
hugo
 
  • #8
Ich habe nur auch ein anderes Problem. Da hatte ich gerade nicht dran gedacht. Wenn ich %PATH% aufrufe, dann erhalte ich zwar den Inhalt von %PATH% aber schon expandiert. Das ist aber eigentlich nicht mein Ziel.

Warum können diese Tools denn nicht einfach die Möglichkeit bieten, Werte hinten anzuhängen???? :mad:

Gruß
Björn
 
  • #9
Blöde Frage:
Wo liegt jetzt genau das Problem ? ::)
im letzten Post von hp steht alles drin..... Im Notfall hilft ein Handbuch über DOS weiter..... ::) :p :-[ :-X
 
  • #10
Also:

Ich möchte nichts weiter als an meine PATH-Variable einen weiteren Pfad anhängen.
Dabei soll der alte Wert von PATH aber nicht geändert werden.
Das ganze soll von der Konsole aus passieren.

Wenn ich setx.exe als Wert %PATH% übergebe, so werden alle Variablen innerhalb des Wertes von PATH expandiert (aus %systemdrive wird c:\, usw.).

Das bedeutet, dass ich diesen Weg so nicht gehen kann.
Leider habe ich zu Beginn des postings noch nicht alle Probleme gekannt. Mir ist vieles erst jetzt klar geworden :(

Irgendwie hat das Ganze so keinen. Mich wundert aber, dass es keinen oder kaum einen gibt, der ein Ähnliches Problem hat.
In der Doku zu setx und setenv wird nur beschrieben wie man Variablen neu anlegt bzw. überschreibt aber nicht wie man Werte anhängt.
Zum anhängen muss man immer erst die alten Werte auslesen und dem Programm wieder neu mitgeben und dann wird mitten in diesem Prozess auch noch expandiert obwohl der Anwender dies vielleicht gar nicht möchte. :mad:

Irgendwer muss doch auch mal versucht haben, scriptgesteuert den PATH zu erweitern, oder?

Na ja, mal abwarten...
 
  • #11
scriptbasiertt PATH-Erweiterung:
setx PATH %PATH%;c:\neuer path
 
  • #12
Hallo zusammen,

man muss nur lange genug suchen!

Pathman.exe heißt des Rätsels Lösung.
Mit Pathman.exe kann man Pfade dem System- wie auch dem Userpath hinzufügen. Doppelte Einträge werden sogar durch das Tool vermieden.

Toll, oder?

Gruß
Björn
 
Thema:

Systemvariablen über Kommandozeile setzen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben