Hinzufügen eines Verzeichnisses zur PATH-Umgebungsvariablen in Windows

525

Ich versuche, C:\xampp\phpmeiner Systemumgebungsvariablen PATHin 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\phpVerzeichnis 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:

  1. Warum ist das passiert? Gibt es etwas, das ich falsch gemacht habe?
  2. Wie füge ich meiner PATHVariablen mithilfe der Konsole (und programmgesteuert mit einer Batchdatei) Verzeichnisse hinzu ?
Netorica
quelle
43
Dies ist ein Thema, da es sich um eine Frage zu "Tools handelt, die Programmierer häufig verwenden". Wenn Sie unter Windows entwickeln und den PFAD nie ändern mussten, bin ich überrascht. Um den Wunsch zu befriedigen, mit der Programmierung in Verbindung zu stehen, habe ich hervorgehoben, worauf die Antwort mit der höchsten Bewertung hingewiesen hat: Sie können dies programmgesteuert über die Konsole (oder über eine Batch-Datei) tun.
George Stocker
1
Vielen Dank für die Bewertung @GeorgeStocker. Ja, ich habe es programmgesteuert gemacht, aber ich hatte keine Ahnung, dass ich mich neu anmelden muss, nachdem ich Änderungen in der Konsolensitzung vorgenommen habe. (und ich denke, es ist nur in meinem Fall), aber die Antwort mit der höchsten Stimme beantwortet im Allgemeinen die Frage
Netorica
1
@George - stimmte zu, aber so wie es aussieht, ist diese Frage für Super User und nicht für Stack Overflow geschrieben. Super User bietet Hilfe bei Webserverkonfigurationen für den persönlichen Gebrauch. Der Stapelüberlauf dient zur Programmierung von Fragen.
JWW
1
Beenden und öffnen Sie eine neue Konsole ... Wenn Sie bash verwenden, ist möglicherweise ein Neustart des Systems erforderlich, bevor die Änderungen bestehen bleiben, je nachdem, wie / was Sie verwenden.
Tracker1

Antworten:

148

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.

Hans Passant
quelle
9
Hmm, nein, es ändert wirklich nur die Registrierung. Sollte ein wenig offensichtlich sein, wenn Sie dies in einem Dialogfeld der Systemsteuerung anstelle der Eingabeaufforderung mit dem Befehl PATH tun. Mit dem Process Monitor von SysInternals können Sie leicht beobachten, was es macht, falls Sie sich darum kümmern. Die Verwendung von PATH ist nicht dasselbe. Alle Änderungen, die Sie vornehmen, gehen verloren, wenn die Konsole geschlossen wird. Mit SETX können Sie dauerhafte Änderungen vornehmen, z. B. im Dialogfeld.
Hans Passant
3
Das ist richtig. Sie müssen Ihre Konsolensitzung immer neu starten, bevor neue Umgebungsvariablen erfasst werden.
BrainSlugs83
1
Würde die Konsolensitzung die Variablen aktualisieren, wenn eine WM_SETTINGCHANGENachricht von einer Anwendung gesendet würde? stackoverflow.com/a/8358361
John_West
Es ist theoretisch möglich, dass keine mir bekannte praktische CRT-Implementierung dies tatsächlich tut. Explorer tut es.
Hans Passant
1
Hintergrundinformationen, die dies bestätigen: blogs.msdn.microsoft.com/oldnewthing/20150915-00/?p=91591
Euro Micelli
960

Option 1

Nachdem Sie PATHmit 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:

set PATH=%PATH%;C:\your\path\here\

Dieser Befehl wird C:\your\path\here\an den aktuellen angehängt PATH.

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 dies PATHdie Umgebungsvariable ist, die vorübergehend geändert werden soll.
  • %PATH%;C:\your\path\here\- Der %PATH%Teil wird auf den aktuellen Wert von erweitert PATHund ;C:\your\path\here\dann mit diesem verkettet. Das wird das Neue PATH.
JimR
quelle
16
@Ilya: Ich wollte, dass Sie das Konsolenfenster öffnen, nachdem der Pfad unter MyComputer-> Eigenschaften-> Erweitert-> Env-Variablen-> Pfad geändert wurde. Einige Windows-Apps geben Änderungen an Umgebungsvariablen nach dem Start weiter, andere nicht. WinXP cmd.exe nicht.
JimR
7
Wenn ich die Konsole verlasse und erneut ausführe, muss ich den Pfad zurücksetzen. Irgendeine Idee, wie diese Änderung dauerhaft gemacht werden kann?
David 天宇 Wong
2
@David 天宇 Wong Wenn Sie "Arbeitsplatz"> "Eigenschaften"> "Erweitert"> "Umgebungsvariablen"> "Pfad" folgen. und fügen Sie das Verzeichnis am Ende dieser Zeichenfolge hinzu, es bleibt. Öffnen Sie die Konsole nach der Änderung.
theB3RV
yup @ theB3RV, es ist nur ein langer Weg, um etwas Einfaches zu tun. Es ist seltsam, dass es keinen dauerhaften Befehl gibt, der in die Konsole eingegeben werden kann
David 天宇 Wong
12
@ David 天宇 Wong Gerade gefunden "SETX ist eine Möglichkeit, dauerhafte Änderungen vorzunehmen, wie z. B. den Dialog." also sollte der SETX-Befehl es tun
theB3RV
202

WARNUNG: Diese Lösung kann Ihren PATH und die Stabilität Ihres Systems beeinträchtigen. Als Nebeneffekt wird Ihr Benutzer- und Systempfad 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 dies nicht blind und fügen Sie es ein. Mit Vorsicht verwenden.

Mit dem Befehl können Sie dauerhaft einen Pfad hinzufügen :PATHsetx

setx /M path "%path%;C:\your\path\here\"

Entfernen Sie das /MFlag, wenn Sie den Benutzer PATHanstelle des Systems setzen möchten PATH.

Anmerkungen:

  • Der setxBefehl 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 .

Nafscript
quelle
7
SETX /M path "%path%;C:\Program Files (x86)\Git\bin\"PATH-Wert auf Maschinenebene
einstellen
7
Warum ist dies nicht die akzeptierte Antwort? Ich würde mir vorstellen, dass die meisten Menschen ihren Weg dauerhaft festlegen wollen ...
Peter Gordon
9
WARNUNG : Aufgrund der Verwendung von %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
FF_Dev
4
WARNUNG 2: Die %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.
FF_Dev
66

Sie brauchen keinen setoder setxBefehl, öffnen Sie einfach das Terminal und geben Sie Folgendes ein:

PATH

Dies zeigt den aktuellen Wert der PATH-Variablen. Jetzt möchten Sie ein Verzeichnis hinzufügen? Geben Sie einfach Folgendes ein:

PATH %PATH%;C:\xampp\php

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:

PATH ;

Aktualisieren

Wie Danial Wilson im Kommentar unten bemerkt hat, legt es den Pfad nur in der aktuellen Sitzung fest. Um den Pfad dauerhaft setxfestzulegen, 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:

echo %YOUR_ENV_VARIABLE%
zar
quelle
1
Es hat funktioniert :) wie wäre es damit! 'PATH% PATH%;' Ich kann mich daran erinnern
Dustin Woodard
12
Ich denke, dies funktioniert nur für die Instanz der cmd-Sitzung. Verwenden Sie setx, um sie dauerhaft zu ändern
Daniel Wilson,
2
Fügen Sie hier keine Anführungszeichen hinzu. Zum Beispiel PATH %PATH%;C:\Program Files\...anstelle vonPATH "%PATH%;C:\Program Files\..."
icc97
4
Verwenden Sie kein Setx! Sie riskieren das Abschneiden Ihrer Pfadvariablen und verlieren viele andere Pfade, die Sie für die Einstellung aufgewendet haben. Beachten Sie die obigen Warnungen.
STWilson
1
@ STWilson, zu spät, um Ihren Kommentar zu sehen!
West Yang
48

Ich würde stattdessen PowerShell verwenden!

Gehen Sie wie folgt vor, um PATH mit PowerShell ein Verzeichnis hinzuzufügen:

$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 wie folgt lauten:

[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")

In einem PowerShell-Skript möchten Sie möglicherweise C:\xampp\phpvor dem Hinzufügen zu PATH überprüfen, ob Ihr Skript vorhanden ist (falls es zuvor hinzugefügt wurde). Sie können es in eine ifBedingung einwickeln .

Also alles zusammen:

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
    [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}

Besser noch, man könnte eine generische Funktion erstellen. Geben Sie einfach das Verzeichnis an, das Sie hinzufügen möchten:

function AddTo-Path{
param(
    [string]$Dir
)

    if( !(Test-Path $Dir) ){
        Write-warning "Supplied directory was not found!"
        return
    }
    $PATH = [Environment]::GetEnvironmentVariable("PATH")
    if( $PATH -notlike "*"+$Dir+"*" ){
        [Environment]::SetEnvironmentVariable("PATH", "$PATH;$Dir", "Machine")
    }
}

Sie könnten die Dinge verbessern, indem Sie etwas polieren. Verwenden Sie beispielsweise, um Test-Pathzu bestätigen, dass Ihr Verzeichnis tatsächlich vorhanden ist.

Ifedi Okonkwo
quelle
3
Für den Aufruf SetEnvironmentVariablemit dem MachineParameter müssen Sie die PowerShell mit Administratorrechten öffnen
InsOp
Es ist bitter enttäuschend, dass diese "Power" -Shell weder% userprofile% noch $ userprofile erkennt. Aber andererseits handelt es sich um Windows, über das wir sprechen
Abbood
3
@abbood Was Sie suchen, ist $env:userprofile.
Nyuszika7h
3
Sie sollten auch entweder useroder machineim Aufruf von angeben GetEnvironmentVariable. Andernfalls $PATHenthä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.
René Nyffenegger
35

Sichereres SETX

Nicken SieSETX allen Kommentaren zur ersten Antwort von @ Nafscript zu .

  • SETXStandardmäßig wird Ihr Benutzerpfad aktualisiert .
  • SETX ... /MIhre aktualisieren Systempfad.
  • %PATH% enthält Systempfad mit angefügtem Benutzerpfad

Warnungen

  1. Sichern Sie IhrenPATH - SETXwird Ihr Junk länger als 1024 Zeichen abschneiden
  2. Nicht aufrufenSETX %PATH%;xxx - Fügt dem Benutzerpfad einen Systempfad hinzu
  3. Nicht aufrufenSETX %PATH%;xxx /M - fügt dem Systempfad einen Benutzerpfad hinzu
  4. Übermäßige Verwendung von Batchdateien kann zur Erblindung führen 1

Die ss64 SETX-Seite enthält einige sehr gute Beispiele. Wichtig ist, dass darauf hingewiesen wird, wo sich die Registrierungsschlüssel für SETXvs befindenSETX /M

Benutzervariablen:

HKCU\Environment

Systemvariablen:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Gebrauchsanweisung

An Benutzer anhängen 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

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 Keyund dem SETX /MModifikator)

@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

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

icc97
quelle
24

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

nclord
quelle
1
Mein Powershell sagt, dass% CD% nicht erkannt wird.
Paulo Matos
@ PauloMatos Könnte versuchen,[System.Environment]::CurrentDirectory
nclord
4

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/

Netorica
quelle
2
Windows 10 hat den Variableneditor für die Pfadumgebung jetzt erheblich verbessert. Sie haben nur 20 Jahre gebraucht, um sich darum zu kümmern.
icc97
4
  • Befehlszeilenänderungen sind nicht dauerhaft und gehen beim Schließen der Konsole verloren.
  • Der Pfad funktioniert so, als ob zuerst kommt, wer zuerst kommt.
  • Möglicherweise möchten Sie andere bereits enthaltene ausführbare Dateien überschreiben. Wenn Sie beispielsweise bereits eine andere Version in Ihrem Pfad haben und eine andere Version hinzufügen möchten, ohne den Pfad dauerhaft zu ändern, sollten Sie das Verzeichnis am Anfang des Befehls einfügen.

Bereits enthaltene ausführbare Dateien überschreiben;

setze PATH = C: \ xampp \ php;% PATH%;

hevi
quelle
2

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:

SETX PATH "%PATH%;C:\path\to\where\the\command\resides"

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

such_ke_nasdeeq
quelle
2

In Bezug auf Punkt 2 verwende ich eine einfache Batchdatei, die PATHfü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:

c:\>mybatchfile
-- here all env. are available
c:\>php file.php
Grzegorz Gajos
quelle
Dies ist ein wichtiger Unterschied zwischen * nix-es und Windows. Der Stapel wird in derselben Shell ausgeführt, und Änderungen an der Umgebung bleiben nach dem Beenden erhalten (im Sitzungsbereich). Dies führt jedoch in beide Richtungen: Eine Batchdatei kann Ihre Umgebung auslöschen. (Übrigens, auf * nix-es müsste man einfach eine sourcesolche Datei haben, wie . mybatchfile).
Tomasz Gandor
Hallo @ grzegorz-gajos, ich habe genau das gesucht, dein Link für weitere Details gibt 404. Gibt es Alternativen?
Devkabiir
Der Inhalt des Links ist leider nicht mehr verfügbar. Ich entfernte.
Grzegorz Gajos
1

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 batchfileEingabe startet iexplore.exe.

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 ü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

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.


quelle
1

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.

Bill Moore
quelle
1

Wenn Sie den Befehl ausführen cmd, werden alle Systemvariablen für dieses Befehlsfenster aktualisiert.

Pranav Sharma
quelle
In einem Sinn. Was passiert ist, dass Sie eine neue Sitzung innerhalb der aktuellen Sitzung starten. exitZum Verlassen müssen Sie zweimal anrufen , um zuerst die neue und dann die erste Sitzung (mit der alten Umgebung) zu schließen.
Farway
1

Verwenden Sie pathed from gtools

es macht Dinge auf intuitive Weise, zB:

pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"

es und zeigt Ergebnisse, ohne dass ein neues cmd erzeugt werden muss !

Frau
quelle
0
  1. Ich habe damals PHP installiert. Extrahiertes php-7 ***. Zip in C: \ php \
  2. Sichern Sie meine aktuelle Umgebungsvariable PATH: run cmdund führen Sie den folgenden Befehl aus:path >C:\path-backup.txt

  3. Holen Sie sich meinen aktuellen Pfadwert in die Datei C: \ path.txt (auf die gleiche Weise)

  4. Ändern Sie path.txt (sicher, meine Pfadlänge beträgt mehr als 1024 Zeichen, Windows läuft einige Jahre)
    • Ich habe dort doppelte Pfade entfernt, wie 'C: \ Windows; oder C: \ Windows \ System32; oder C: \ Windows \ System32 \ Wbem; - Ich habe zweimal.
    • Entfernen Sie auch deinstallierte Programmpfade. Beispiel: C: \ Programme \ NonExistSoftware;
    • Auf diese Weise ist meine Pfadzeichenfolge <1024 :)))
    • am Ende der Pfadzeichenfolge hinzufügen; C: \ php \
    • Kopieren Sie den Pfadwert nur in einen Puffer mit gerahmten doppelten Anführungszeichen! Beispiel: "C: \ Windows; ****; C: \ php \" Kein PATH = sollte da sein !!!
  5. Öffnen Sie Windows PowerShell als Administrator.
  6. Führen Sie den Befehl aus:

setx path "Here you should insert string from buffer (new path value)"

  1. Führen Sie Ihr Terminal erneut aus (ich verwende "Far Manager") und überprüfen Sie: php -v
Serbe
quelle
0

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.)

svinec
quelle