Ich versuche, C:\xampp\php
meiner Systemumgebungsvariablen PATH
in Windows etwas hinzuzufügen .
Ich habe es bereits über das Dialogfeld Umgebungsvariablen hinzugefügt.
Aber wenn ich in meine Konsole tippe:
C:\>path
Das neue C:\xampp\php
Verzeichnis wird nicht angezeigt :
PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin
Ich habe zwei Fragen:
- Warum ist das passiert? Gibt es etwas, das ich falsch gemacht habe?
- Wie füge ich meiner
PATH
Variablen mithilfe der Konsole (und programmgesteuert mit einer Batchdatei) Verzeichnisse hinzu ?
windows
command-line
path
environment-variables
Netorica
quelle
quelle
Antworten:
Dies ändert nur die Registrierung. Ein vorhandener Prozess verwendet diese Werte nicht. Ein neuer Prozess wird dies tun, wenn er nach dieser Änderung gestartet wird und die alte Umgebung nicht von seiner übergeordneten Umgebung erbt.
Sie haben nicht angegeben, wie Sie die Konsolensitzung gestartet haben. Der beste Weg, dies sicherzustellen, besteht darin, die Befehlsshell zu beenden und erneut auszuführen. Es sollte dann den aktualisierten PFAD erben.
quelle
WM_SETTINGCHANGE
Nachricht von einer Anwendung gesendet würde? stackoverflow.com/a/8358361Option 1
Nachdem Sie
PATH
mit der GUI geändert haben , schließen Sie das Konsolenfenster und öffnen Sie es erneut.Dies funktioniert, da nur Programme, die nach der Änderung gestartet wurden, das neue sehen
PATH
.Option 2
Führen Sie diesen Befehl in dem geöffneten Befehlsfenster aus:
Dieser Befehl wird
C:\your\path\here\
an den aktuellen angehängtPATH
.Brechen sie ab:
set
- Ein Befehl, der die Umgebungsvariablen von cmd nur für die aktuelle cmd-Sitzung ändert . andere Programme und das System sind nicht betroffen.PATH=
- Bedeutet, dass diesPATH
die Umgebungsvariable ist, die vorübergehend geändert werden soll.%PATH%;C:\your\path\here\
- Der%PATH%
Teil wird auf den aktuellen Wert von erweitertPATH
und;C:\your\path\here\
dann mit diesem verkettet. Das wird das NeuePATH
.quelle
Mit dem Befehl können Sie dauerhaft einen Pfad hinzufügen :
PATH
setx
Entfernen Sie das
/M
Flag, wenn Sie den BenutzerPATH
anstelle des Systems setzen möchtenPATH
.Anmerkungen:
setx
Befehl ist nur in Windows 7 und höher verfügbar.Sie sollten diesen Befehl an einer Eingabeaufforderung mit erhöhten Rechten ausführen.
Wenn Sie es nur für die aktuelle Sitzung ändern möchten, verwenden Sie set .
quelle
SETX /M path "%path%;C:\Program Files (x86)\Git\bin\"
PATH-Wert auf Maschinenebene%PATH%
Variablen führt dieser Befehl globale env-Variablen mit denen des Benutzers zusammen. Nicht wahr? Dies kann zu unerwünschten Nebenwirkungen führen, insbesondere mit dem Schalter / M%PATH%
Variable ist möglicherweise nicht mit Umgebungsvariablen synchronisiert, da sie beim Start der Eingabeaufforderung geladen und danach nie neu geladen wird (selbst wenn der Befehl setx ausgeführt wird). Es könnte auch lokal durch zuvor ausgeführte Skripte geändert worden sein.Sie brauchen keinen
set
odersetx
Befehl, öffnen Sie einfach das Terminal und geben Sie Folgendes ein:Dies zeigt den aktuellen Wert der PATH-Variablen. Jetzt möchten Sie ein Verzeichnis hinzufügen? Geben Sie einfach Folgendes ein:
Wenn Sie aus irgendeinem Grund die PATH-Variable löschen möchten (überhaupt keine Pfade oder alle darin enthaltenen Pfade löschen), geben Sie Folgendes ein:
Aktualisieren
Wie Danial Wilson im Kommentar unten bemerkt hat, legt es den Pfad nur in der aktuellen Sitzung fest. Um den Pfad dauerhaft
setx
festzulegen, verwenden Sie, aber beachten Sie, dass dies den Pfad dauerhaft festlegt, jedoch NICHT in der aktuellen Sitzung. Sie müssen daher eine neue Befehlszeile starten, um die Änderungen anzuzeigen . Weitere Informationen finden Sie hier .Verwenden Sie den Befehl ECHO, um zu überprüfen, ob eine Umgebungsvariable vorhanden ist oder ob ihr Wert angezeigt wird:
quelle
PATH %PATH%;C:\Program Files\...
anstelle vonPATH "%PATH%;C:\Program Files\..."
Ich würde stattdessen PowerShell verwenden!
Gehen Sie wie folgt vor, um PATH mit PowerShell ein Verzeichnis hinzuzufügen:
Um die Variable für alle Benutzer maschinenweit festzulegen, sollte die letzte Zeile wie folgt lauten:
In einem PowerShell-Skript möchten Sie möglicherweise
C:\xampp\php
vor dem Hinzufügen zu PATH überprüfen, ob Ihr Skript vorhanden ist (falls es zuvor hinzugefügt wurde). Sie können es in eineif
Bedingung einwickeln .Also alles zusammen:
Besser noch, man könnte eine generische Funktion erstellen. Geben Sie einfach das Verzeichnis an, das Sie hinzufügen möchten:
Sie könnten die Dinge verbessern, indem Sie etwas polieren. Verwenden Sie beispielsweise, um
Test-Path
zu bestätigen, dass Ihr Verzeichnis tatsächlich vorhanden ist.quelle
SetEnvironmentVariable
mit demMachine
Parameter müssen Sie die PowerShell mit Administratorrechten öffnen$env:userprofile
.user
odermachine
im Aufruf von angebenGetEnvironmentVariable
. Andernfalls$PATH
enthält es den Wert sowohl des Benutzer- als auch des Computerteils der Registrierung, wodurch die Pfadvariable beim erneuten Speichern unnötig in die Luft gesprengt wird.Sichereres SETX
Nicken Sie
SETX
allen Kommentaren zur ersten Antwort von @ Nafscript zu .SETX
Standardmäßig wird Ihr Benutzerpfad aktualisiert .SETX ... /M
Ihre aktualisieren Systempfad.%PATH%
enthält Systempfad mit angefügtem BenutzerpfadWarnungen
PATH
-SETX
wird Ihr Junk länger als 1024 Zeichen abschneidenSETX %PATH%;xxx
- Fügt dem Benutzerpfad einen Systempfad hinzuSETX %PATH%;xxx /M
- fügt dem Systempfad einen Benutzerpfad hinzuDie ss64 SETX-Seite enthält einige sehr gute Beispiele. Wichtig ist, dass darauf hingewiesen wird, wo sich die Registrierungsschlüssel für
SETX
vs befindenSETX /M
Gebrauchsanweisung
An Benutzer anhängen
PATH
append_user_path.cmd
An System anhängen
PATH
append_system_path.cmd
. Muss als Administrator ausgeführt werden.(Es ist im Grunde das gleiche, außer mit einem anderen
Key
und demSETX /M
Modifikator)Alternativen
Schließlich gibt es möglicherweise eine verbesserte Version namens SETENV , die von der ss64 SETX-Seite empfohlen wird und die das Festlegen der Benutzer- oder Systemumgebungsvariablen aufteilt.
1. Nicht unbedingt wahr
quelle
Spät zur Party - aber praktisch, wenn Sie sich bereits in dem Verzeichnis befinden, das Sie zu PATH hinzufügen möchten.
set PATH=%PATH%;%CD%
Bearbeiten: gemäß Kommentar - funktioniert mit Standard-Windows-Cmd, jedoch nicht in Powershell.
Für Powershell ist das
%CD%
Äquivalent[System.Environment]::CurrentDirectory
quelle
[System.Environment]::CurrentDirectory
Abgesehen von allen Antworten können Sie den Rapid Environment Editor verwenden , wenn Sie ein nettes GUI-Tool zum Bearbeiten Ihrer Windows-Umgebungsvariablen benötigen
Versuch es! Es ist sicher zu bedienen und super!
http://www.rapidee.com/en/
quelle
Bereits enthaltene ausführbare Dateien überschreiben;
quelle
Das Überprüfen der obigen Vorschläge unter Windows 10 LTSB und ein Blick auf die "Hilfe" -Konturen (die angezeigt werden können, wenn 'command /?' Auf dem cmd eingegeben wird) kam zu dem Schluss, dass der Befehl PATH die Systemumgebungsvariable ändert Pfadwerte nur für die aktuelle Sitzung, aber nach dem Neustart werden alle Werte auf ihre Standardeinstellungen zurückgesetzt - genau wie vor der Verwendung des Befehls PATH.
Auf der anderen Seite ist die Verwendung des SETX-Befehls mit Administratorrechten weitaus leistungsfähiger. Er ändert diese Werte endgültig (oder zumindest bis zur nächsten Verwendung dieses Befehls oder bis zur nächsten manuellen Manipulation der GUI-Werte ...).
Aus Gründen der Klarheit dachte ich jedoch, dass es eines Tages jemandem helfen könnte, hier die beste SETX-Syntax zu verwenden, die für mich funktioniert hat:
wo ein Gleichheitszeichen '=' vermieden werden sollte und Sie sich keine Sorgen um Leerzeichen machen! Für einen Pfad, der Leerzeichen enthält, müssen keine Anführungszeichen mehr eingefügt werden - das geteilte Zeichen ';' mach den Job.
Das Schlüsselwort PATH, das auf SETX folgt, definiert, welcher Wertesatz unter den möglichen Werten der Systemumgebungsvariablen geändert werden soll, und das% PATH% (das Wort PATH, das vom Prozentzeichen umgeben ist) in Anführungszeichen weist das Betriebssystem an, das vorhandene zu verlassen PATH-Werte wie sie sind und fügen den folgenden Werten den folgenden Pfad hinzu (den, der dem geteilten Vorzeichen ';' folgt).
HTH
quelle
In Bezug auf Punkt 2 verwende ich eine einfache Batchdatei, die
PATH
für mich ausgefüllt wird, oder andere Umgebungsvariablen. Daher werden standardmäßig keine Umgebungsvariablen verschmutzt. Diese Batch-Datei ist von überall zugänglich, sodass ich Folgendes eingeben kann:quelle
source
solche Datei haben, wie. mybatchfile
).In einer Eingabeaufforderung weisen Sie Cmd an, die Befehlszeile des Explorers zu verwenden, indem Sie ihm eine Voreinstellung hinzufügen
start
.Also
start Yourbatchname
.Beachten Sie, dass Sie sich registrieren müssen, als ob der Name lautet
batchfile.exe
.Programme und Dokumente können zur Registrierung hinzugefügt werden. Wenn Sie also ihren Namen ohne Pfad in das Dialogfeld Start - Ausführen oder die Verknüpfung eingeben, kann Windows sie finden.
Dies ist eine generische Registrierungsdatei. Kopieren Sie die folgenden Zeilen in ein neues Textdokument und speichern Sie es als anyname.reg. Bearbeiten Sie es mit Ihren Programmen oder Dokumenten.
Verwenden Sie in Pfaden \, um Ordnernamen in Schlüsselpfaden zu trennen, da regedit ein einzelnes \ verwendet, um die Schlüsselnamen zu trennen. Alle Registrierungsdateien beginnen mit REGEDIT4. Ein Semikolon verwandelt eine Zeile in einen Kommentar. Das @ -Symbol bedeutet, dass der Wert dem Schlüssel und nicht einem benannten Wert zugewiesen wird.
Die Datei muss nicht vorhanden sein. Dies kann verwendet werden, um Word.exe so einzustellen, dass Winword.exe geöffnet wird.
Die
start batchfile
Eingabe startet iexplore.exe.In einer anderen Antwort wurde Ihnen bereits über den Pfad berichtet. Siehe auch
doskey /?
für cmd-Makros (sie funktionieren nur beim Tippen).Sie können Startbefehle für CMD ausführen. Aus der technischen Referenz zum Windows Recource Kit
AutoRun
Beschreibung
Enthält Befehle, die bei jedem Start von Cmd.exe ausgeführt werden.
quelle
Eine bessere Alternative zur Systemsteuerung ist die Verwendung dieses Freeware-Programms von SourceForge namens Pathenator:
https://sourceforge.net/projects/pathenator/
Es funktioniert jedoch nur für Systeme mit Dot.Net 4.0 oder höher, z. B. Windows 7,8 oder 10.
quelle
Wenn Sie den Befehl ausführen
cmd
, werden alle Systemvariablen für dieses Befehlsfenster aktualisiert.quelle
exit
Zum Verlassen müssen Sie zweimal anrufen , um zuerst die neue und dann die erste Sitzung (mit der alten Umgebung) zu schließen.Verwenden Sie pathed from gtools
es macht Dinge auf intuitive Weise, zB:
es und zeigt Ergebnisse, ohne dass ein neues cmd erzeugt werden muss !
quelle
Sichern Sie meine aktuelle Umgebungsvariable PATH: run
cmd
und führen Sie den folgenden Befehl aus:path >C:\path-backup.txt
Holen Sie sich meinen aktuellen Pfadwert in die Datei C: \ path.txt (auf die gleiche Weise)
setx path "Here you should insert string from buffer (new path value)"
php -v
quelle
So trivial es auch sein mag, ich musste Windows neu starten, wenn ich mit diesem Problem konfrontiert war.
Ich verwende Windows 7 x64. Ich habe die System-PATH-Variable manuell aktualisiert. Dies funktionierte in Ordnung, wenn ich cmd.exe über das Statistikmenü ausführe. Wenn ich jedoch "cmd" in die Adressleiste des Windows-Explorers eingebe, wird der PATH anscheinend von einer anderen Stelle geladen, an der meine manuellen Änderungen nicht vorgenommen wurden.
(Um Zweifel zu vermeiden - ja, ich habe cmd ein paar Mal geschlossen und erneut ausgeführt, bevor ich neu gestartet habe, und es hat nicht geholfen.)
quelle