it-swarm.com.de

Verzeichnis zur PATH-Umgebungsvariablen in Windows hinzufügen

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:

  1. Warum ist das passiert? Gibt es etwas, was ich falsch gemacht habe?
  2. Wie füge ich meiner Variable PATH mithilfe der Konsole Verzeichnisse hinzu (und programmgesteuert mit einer Stapeldatei)?
433
Mp de la Vega

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.

120
Hans Passant

Option 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, die neue PATH sehen.

Option 2

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.
847
JimR

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:

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

169
Nafscript

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%
60
zar

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")
}
32
Ifedi Okonkwo

Sicherer SETX

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 Benutzerpfad

Warnungen

  1. Sichern Sie Ihre PATH - SETX Ihr Junk länger als 1024 Zeichen
  2. Nicht SETX %PATH%;xxx aufrufen - fügt den Systempfad dem Benutzerpfad hinzu
  3. Nicht SETX %PATH%;xxx /M aufrufen - fügt den Benutzerpfad zum Systempfad hinzu
  4. Übermäßige Verwendung von Batch-Dateien kann zu Erblindung führen1

Die 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

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.

(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

Alternativen

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

26
icc97

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

23
nclord

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.

19
Thomas Fonseca
  • befehlszeilenänderungen sind nicht dauerhaft und gehen verloren, wenn die Konsole geschlossen wird.
  • Der Pfad funktioniert so, wie es 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 platzieren.

Bereits enthaltene ausführbare Dateien überschreiben; 

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

3
hevi

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!

http://www.rapidee.com/de/

2
Mp de la Vega

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

1
such_ke_nasdeeq

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
1
Grzegorz Gajos

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.

0
user6017774
  1. Ich habe damals PHP installiert. Extrahiert php-7 ***. Zip in C:\php \
  2. Sichern Sie die aktuelle Umgebungsvariable PATH: Führen Sie cmd aus und 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 Pfadzeichenfolgenlänge <1024 :)))
    • am Ende der Pfadzeichenfolge hinzufügen; C:\php \
    • Kopieren nur Pfadwert in Puffer mit gerahmten Anführungszeichen! Beispiel: "C:\Windows; ****; C:\php \" Nr PFAD = sollte dort 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
0
Serb

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 !

0
womd

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.

0
Bill Moore

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

0
RBXII3