Ich habe zwei benutzerdefinierte Variablen:
ANT_HOME auf% USERPROFILE% \ Developer \ Tools \ Apache \ Apache Ant \ apache-ant-1.8.2 JAVA_HOME auf C: \ Programme \ Java \ jdk1.6.0_23 gesetzt
Und ich möchte diese Pfade an die Systemvariable anhängen, damit ich auf die ausführbaren Dateien in ihren Bin-Ordnern zugreifen kann. Ich habe es versucht
PATH auf [andere Pfade] gesetzt;% ANT_HOME% \ bin;% JAVA_HOME% \ bin
Das funktioniert jedoch nicht. Wenn ich eine Eingabeaufforderung öffne und% PATH% wiedergebe, werden die Benutzervariablen nicht erweitert . Der Pfad zeigt also nur das Literal:% ANT_HOME% \ bin;% JAVA_HOME% \ bin
Ich erinnere mich, dass dies auf meinen alten Windows XP-Systemen gut funktioniert. Wie richte ich das unter Windows 7 ein?
windows-7
environment-variables
Michael Prescott
quelle
quelle
Antworten:
UPDATE NO.2 - Nun zur eigentlichen Frage: Warum können verschachtelte, vom Benutzer erstellte Variablen nicht erweitert werden?
Es gibt einige allgemeine Probleme bei der Variablenerweiterung in Windows. Ich bin bereits auf dasselbe Problem gestoßen und habe keine klaren, reproduzierbaren Umstände gefunden - die Rekursionsstufe, bei der die Erweiterung fehlschlägt, ist nicht konsistent, Sonderzeichen scheinen keine Rolle zu spielen usw.
Die einzige praktikable Problemumgehung, die ich gefunden habe, ist das Hinzufügen von Variablen Rekursionsstufe für Rekursionsstufe. Das bedeutet: Löschen Sie alle Variablen, die Sie ineinander verschachteln möchten (einschließlich der Aufrufe von PATH an Ihre benutzerdefinierten Variablen), und starten Sie dann von vorne. Definieren Sie Ihre grundlegenden Variablen (usw. ANT-HOME), schreiben Sie fest, prüfen Sie, ob sie erweitert sind. Wenn dies der Fall ist, fahren Sie mit dem Festschreiben der nächsten Ebene fort, prüfen Sie ... Sie haben die Idee.
AKTUALISIERTE ANTWORT - Definieren permanenter Umgebungsvariablen mithilfe der CLI und der GUI - Scrollen Sie nach unten, um die ursprüngliche Antwort zu erhalten
GUI-Methode:
Geben Sie unter Windows 7 einfach "system" in die META-Eingabeaufforderung ein und Sie sehen einen Eintrag "Systemumgebungsvariablen bearbeiten". Klicken Sie dort auf "Umgebungsvariablen". Dort können Sie entweder die Systemvariable PATH (untere Liste) bearbeiten oder den Benutzerumgebungsvariablen eine neue PATH-Variable hinzufügen / bearbeiten.
Befehlszeilenmethode:
Um Umgebungsvariablen dauerhaft zu ändern, müssen Sie den Befehl SETX in der Windows-Befehlszeile verwenden. Im Gegensatz zu anderen Windows-Versionen ist Windows 7 integriert. Die Syntax unterscheidet sich stark von der von SET, ist aber auch leistungsstark. Sie müssen allerdings etwas vorsichtig sein, es ist einfach, Ihre Variablen mit SETX durcheinander zu bringen.
Standardmäßig ändern Sie Benutzervariablen . Sie können eine PATH-Benutzerumgebungsvariable haben, die problemlos mit der System-PATH-Variablen koexistiert. Wenn Sie es noch nicht definiert haben, geben Sie Folgendes ein:
SETX PATH yourpath
Sie können der Systemvariablen PATH auch einen Wert hinzufügen. Dazu müssen Sie zuerst eine Befehlszeile mit Administratorrechten aufrufen. Um dies zu tun, drücken Sie die Meta Taste (Windows), Art
cmd
und HitCTRL
+SHIFT
+ENTER
und bestätigen Sie die UAC - Dialog.Um dem Pfad neue Werte hinzuzufügen, können Sie jetzt eingeben
Es ist wichtig, diese Syntax zu befolgen! Wenn Sie% path% nicht zuerst einschließen, gehen alle vorhandenen Pfadwerte verloren und werden nur durch Ihren neuen Pfad ersetzt. Der Schalter / m am Ende setzt die Variable in der Systemumgebung.
Bitte beachten Sie, dass Sie eine neue Befehlszeile aufrufen müssen, um Ihre neue Variable verwenden zu können.
Es gibt auch eine vollständige Referenz für SETX bei TechNet .
ALTE ANTWORT Der Befehl SET aktualisiert die Variablen nur für die Dauer der aktuellen Befehlszeilensitzung.
Die korrekte Syntax zum Hinzufügen eines Werts zu einer Variablen lautet "set [Variable] =% [Variable]%; [neuer Wert]"
Beachten Sie, dass Sie links vom Gleichheitszeichen die Prozentzeichen weglassen müssen!
Quelle: TechNet-Befehlszeilenreferenz für Windows Server
quelle
Ein Microsoft Support-Artikel aus dem Jahr 2007 - Nummer 329308 - beschreibt einen Fehler in Shell32.dll, der die Ursache für dieses Problem ist. Die Lösung besteht darin
PATH
, der Benutzervariablenliste eine Variable hinzuzufügen , die auf eingestellt istDies hat das Problem umgangen. Ich mag es nicht, es nur für meinen Benutzer einzustellen, aber irgendwie zeigt mein System Symptome dieses alten Fehlers und ich sehe noch keine bessere Antwort.
quelle