Ich versuche, C:\xampp\php
zu meiner Umgebungsvariable PATH
in Windows hinzuzufügen.
Ich habe es bereits im 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:
PATH
mithilfe der Konsole Verzeichnisse hinzu (und programmgesteuert mit einer Stapeldatei)?Dies ändert nur die Registrierung. Ein vorhandener Prozess verwendet diese Werte nicht. Ein neuer Prozess führt dies aus, wenn er after this change und die alte Umgebung nicht von seiner übergeordneten Umgebung erbt.
Sie haben nicht angegeben, wie Sie die Konsolensitzung gestartet haben. Am besten stellen Sie sicher, dass Sie den Befehl Shell beenden und erneut ausführen. Es sollte dann den aktualisierten PFAD erben.
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, die neue PATH
sehen.
Führen Sie diesen Befehl in dem geöffneten Befehlsfenster aus:
set PATH=%PATH%;C:\your\path\here\
Dieser Befehl hängt C:\your\path\here\
an die aktuelle PATH
an.
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 davon nicht betroffen.PATH=
- Gibt an, dass PATH
die Umgebungsvariable ist, die vorübergehend geändert werden soll.%PATH%;C:\your\path\here\
- Der %PATH%
-Teil erweitert sich auf den aktuellen Wert von PATH
und ;C:\your\path\here\
wird dann mit ihm verkettet. Dies wird zur neuen PATH
.WARNUNG: Diese Lösung kann destruktiv sein für Ihren PFAD und die Stabilität Ihres Systems. Als Nebeneffekt werden der Benutzer und der Systempfad PATH zusammengeführt und der Pfad auf 1024 Zeichen gekürzt. Die Wirkung dieses Befehls ist irreversibel. Erstellen Sie zuerst ein Backup von PATH. Weitere Informationen finden Sie in den Kommentaren.
Kopieren Sie das nicht blind und fügen Sie es ein. Mit Vorsicht verwenden.
Sie können dauerhaft mit dem Befehl PATH
einen Pfad zu setx
hinzufügen:
setx /M path "%path%;C:\your\path\here\"
Entfernen Sie das Flag /M
, wenn Sie anstelle des Systems PATH
den Benutzer PATH
festlegen möchten.
Anmerkungen:
setx
ist nur in Windows 7 und höher verfügbar.Sie sollten diesen Befehl von einer Eingabeaufforderung mit erhöhtem Befehl ausführen.
Wenn Sie es nur für die aktuelle Sitzung ändern möchten, verwenden Sie set .
Sie benötigen keinen Befehl set
oder setx
, öffnen Sie einfach das Terminal und geben Sie Folgendes ein:
PATH
Dies zeigt den aktuellen Wert der PATH-Variablen. Jetzt möchten Sie das Verzeichnis hinzufügen? Einfach eintippen:
PATH %PATH%;C:\xampp\php
Wenn Sie die Variable PATH aus irgendeinem Grund löschen möchten (keine Pfade oder alle darin enthaltenen Pfade löschen), geben Sie Folgendes ein:
PATH ;
Update
Wie Danial Wilson im Kommentar unten angemerkt hat, wird der Pfad nur in der aktuellen Sitzung festgelegt. Um den Pfad dauerhaft festzulegen, verwenden Sie setx
. Beachten Sie jedoch, dass der Pfad in der aktuellen Sitzung dauerhaft festgelegt wird, jedoch NICHT. Sie müssen also eine neue Befehlszeile starten, um die Änderungen zu sehen. Weitere Informationen hier) .
Um zu überprüfen, ob eine Umgebungsvariable vorhanden ist oder ob ihr Wert angezeigt wird, verwenden Sie das ECHO-Kommando:
echo %YOUR_ENV_VARIABLE%
In diesem Zeitalter von PowerShell würde ich PATH so bearbeiten:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")
Um die Variable für alle Benutzer maschinenweit festzulegen, sollte die letzte Zeile folgendermaßen aussehen:
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
In einem PowerShell-Skript möchten Sie möglicherweise nach dem Vorhandensein Ihres C:\xampp\php
suchen, bevor Sie ihn zu PATH hinzufügen (falls dies zuvor hinzugefügt wurde). Sie können es in eine if
-Bedingung einschließen.
Also alles zusammen:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
Nicken Sie zu allen Kommentaren zu der ersten SETX
-Antwort von @ Nafscript .
SETX
aktualisiert standardmäßig Ihren user - Pfad.SETX ... /M
aktualisiert Ihren system -Pfad.%PATH%
enthält den Systempfad mit angehängtem BenutzerpfadPATH
- SETX
Ihr Junk länger als 1024 ZeichenSETX %PATH%;xxx
aufrufen - fügt den Systempfad dem Benutzerpfad hinzuSETX %PATH%;xxx /M
aufrufen - fügt den Benutzerpfad zum Systempfad hinzuDie ss64 SETX-Seite hat einige sehr gute Beispiele. Wichtig zeigt es an, wo sich die Registrierungsschlüssel für SETX
vs. SETX /M
befinden.
Benutzervariablen:
HKCU\Environment
Systemvariablen:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
PATH
append_user_path.cmd
@ECHO OFF
REM usage: append_user_path "path"
SET Key="HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > user_path_bak.txt
SETX PATH "%CurrPath%";%1
PATH
append_system_path.cmd
. Muss als Administrator ausgeführt werden.
(Im Grunde ist es dasselbe, außer mit einer anderen Key
und dem SETX /M
-Modifikator.)
@ECHO OFF
REM usage: append_system_path "path"
SET Key="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > system_path_bak.txt
SETX PATH "%CurrPath%";%1 /M
Schließlich gibt es möglicherweise eine verbesserte Version namens SETENV , die von der ss64-SETX-Seite empfohlen wird und die die Benutzer- oder Systemumgebungsvariablen aufteilt.
1. Nicht genau richtig
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%
edit: per Kommentar - funktioniert mit Standard-Windows-Cmd, aber nicht in Powershell.
Für Powershell ist das Äquivalent von %CD%
[System.Environment]::CurrentDirectory
Was ist, wenn Sie den Pfad mit setx falsch eingeben? Der beste Weg ist einfach durch die Fenster U.I. Systemsteuerung-> Alle Systemsteuerungselemente-> System-> Erweiterte Systemeinstellungen -> Umgebungsvariablen
Blättern Sie nach unten zu Pfad und wählen Sie Bearbeiten. Sie können ihn auch kopieren und in Ihren bevorzugten Editor einfügen, um den gesamten Pfad zu sehen und ihn einfacher zu bearbeiten.
Bereits enthaltene ausführbare Dateien überschreiben;
set PATH = C:\xampp\php;% PATH%;
Abgesehen von all den Antworten können Sie mit Rapid Environment Editor ein Nice GUI-Tool zum Bearbeiten Ihrer Windows-Umgebungsvariablen verwenden.
versuch es! Es ist sicher zu bedienen und super!
Wenn Sie die oben genannten Vorschläge unter Windows 10 LTSB durchsehen und einen Blick auf die Hilfskonturen "help" werfen (die angezeigt werden können, wenn Sie "command /?" In der cmd-Datei eingeben), kam ich zu der Schlussfolgerung , Dass der Befehl PATH den Befehl ändert Systemumgebungsvariable Pfadwerte nur für die aktuelle Sitzung, aber nach dem Neustart werden alle Werte auf ihren Standardwert zurückgesetzt - genau wie vor der Verwendung des Befehls PATH.
Auf der anderen Seite ist die Verwendung des SETX-Befehls mit Administratorrechten viel leistungsfähiger. Sie ändert diese Werte für immer (oder zumindest bis zur nächsten Verwendung dieses Befehls oder bis zum nächsten Mal, wenn diese Werte manuell über die GUI bearbeitet werden).
Aber der Klarheit halber dachte ich, dass das Teilen der besten SETX-Syntaxverwendung .__, die für mich funktionierte, jemandem eines Tages helfen könnte:
SETX PATH "%PATH%;C:\path\to\where\the\command\resides"
wo ein Gleichheitszeichen '=' vermieden werden sollte, und sorgen Sie sich nicht um Leerzeichen! Es ist nicht erforderlich, weitere Anführungszeichen für einen Pfad einzufügen , der Leerzeichen enthält. Das Trennzeichen ';' mach den Job.
Das PATH-Schlüsselwort, das auf SETX folgt, definiert, welcher Satz von Werten zwischen den möglichen Werten der Systemumgebungsvariablen geändert werden soll, und der% PATH% (der Word-PATH, der vom Prozentzeichen umgeben ist) in den Anführungszeichen, weist das Betriebssystem an, das vorhandene zu verlassen PATH-Werte wie sie sind und fügen Sie den folgenden Pfad (den Pfad, der auf das Split-Zeichen ';' folgt) zu den vorhandenen Werten hinzu.
HTH
Zum Punkt 2 verwende ich eine einfache Batchdatei, die PATH
oder andere Umgebungsvariablen für mich auffüllt. Daher gibt es standardmäßig keine Verschmutzung von Umgebungsvariablen. Diese Batchdatei ist von überall aus zugänglich, sodass ich Folgendes eingeben kann:
c:\>mybatchfile
-- here all env. are available
c:\>php file.php
In einer Eingabeaufforderung weisen Sie Cmd an, die Befehlszeile des Explorers zu verwenden, indem Sie diese mit start
voranstellen.
Also start Yourbatchname
.
Beachten Sie, dass Sie sich registrieren müssen, als ob der Name batchfile.exe
lautet.
Programme und Dokumente können zur Registrierung hinzugefügt werden. Geben Sie ihren Namen ohne ihren Pfad in das Dialogfeld "Start - Ausführen" oder eine Verknüpfung ein, damit Windows sie finden kann.
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.
In Pfaden verwenden Sie \, um die Ordnernamen in Schlüsselpfaden zu trennen, da regedit ein\verwendet, um die Schlüsselnamen zu trennen. Alle reg-Dateien beginnen mit REGEDIT4. Ein Semikolon verwandelt eine Zeile in einen Kommentar. Das @ -Zeichen bedeutet, dass der Wert dem Schlüssel und nicht einem benannten Wert zugewiesen wird.
Die Datei muss nicht existieren. Dies kann verwendet werden, um Word.exe so einzustellen, dass Winword.exe geöffnet wird.
Durch Eingabe von start batchfile
wird iexplore.exe gestartet.
REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension>
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]
;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""
;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry
;Informs the Shell that the program accepts URLs.
;"useURL"="1"
;Sets the path that a program will use as its' default directory. This is commented out.
;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"
In einer anderen Antwort wurde Ihnen bereits der Pfad mitgeteilt. Siehe auch doskey /?
für Cmd-Makros (sie funktionieren nur beim Tippen).
Sie können Startbefehle für CMD ausführen. Technische Referenz zu Windows Recource Kit
AutoRun
HKCU\Software\Microsoft\Command Processor
Data type Range Default value
REG_SZ list of commands There is no default value for this entry.
Beschreibung
Enthält Befehle, die bei jedem Start von Cmd.exe ausgeführt werden.
Sichern Sie die aktuelle Umgebungsvariable PATH: Führen Sie cmd
aus 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
benutze pathed from gtools
es macht Dinge auf intuitive Art und Weise, zB:
pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"
es und zeigt Ergebnisse ohne dass ein neuer cmd erzeugt werden muss !
Eine bessere Alternative zur Systemsteuerung ist die Verwendung dieses Freeware-Programms von Sourceforge namens Pathenator:
https://sourceforge.net/projects/pathenator/
Es arbeitet jedoch nur für Systeme, die über Dot.Net 4.0 oder höher verfügen, wie Windows 7,8 oder 10.
Wenn Sie den Befehl cmd
ausführen, werden alle Systemvariablen für dieses Befehlsfenster aktualisiert.