我试图在Windows中添加C:\xampp\php到我的系统PATH环境变量。
我已经使用环境变量对话框添加了它。
但当我在控制台输入:
C:\>path
它不会显示新的C:\xampp\php目录:
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
我有两个问题:
为什么会发生这种情况?我做错什么了吗?
另外,如何使用控制台(并以编程方式,使用批处理文件)向PATH变量添加目录?
选项1
在使用GUI更改PATH之后,关闭并重新打开控制台窗口。
这是可行的,因为只有在更改之后启动的程序才能看到新的PATH。
选项2
此选项仅影响当前shell会话,而不会影响整个系统。在已打开的命令窗口中执行以下命令:
set PATH=%PATH%;C:\your\path\here\
该命令将C:\your\path\here\追加到当前路径。如果路径包含空格,则不需要包含引号。
分解一下:
set -仅为当前cmd会话更改cmd的环境变量的命令;其他程序和系统不受影响。
PATH= -表示PATH是要临时更改的环境变量。
%PATH%;C:\your\ PATH \here\ - %PATH%部分扩展为PATH的当前值,然后;C:\your\ PATH \here\被连接到它。这将成为新的PATH。
这次我已经安装了PHP。我提取php-7***.zip到C:\php</ I >
备份我当前的PATH环境变量:运行cmd,执行命令:PATH >C:\ PATH -backup.txt
获取当前路径值到C:\path.txt文件(同样的方法)
修改path.txt(当然,我的路径长度超过1024个字符,Windows运行了几年)
我已经在那里删除了重复的路径,比如'C:\Windows;或C:\Windows\ System32系统;或C:\Windows\System32\ Wbem;-我有两次。
也可以删除已卸载的程序路径。例如:C:\Program Files\ NonExistSoftware;
这样,我的路径字符串长度< 1024:))))
在路径字符串的末尾,添加;C:\php\
复制路径值只到缓冲区与框架双引号!示例:"C:\Windows;****;C:\php"不应该有PATH= !!
以管理员身份打开Windows PowerShell(例如Win + X)。
运行命令:
这里你应该插入字符串从缓冲区(新的路径值)"
重新运行您的终端(我使用“Far Manager”)并检查:
php - v
在Windows 10 LTSB上查看上述建议,并浏览一下“帮助”概要(可以在输入'command /?’),让我得出结论,PATH命令只改变当前会话的系统环境变量PATH值,但重新启动后,所有值重置为默认值-就像使用PATH命令之前一样。
另一方面,使用具有管理权限的SETX命令要强大得多。它会永久地改变这些值(或者至少在下次使用此命令或在下一次手动GUI操作这些值之前……).
最适合我的SETX语法用法:
SETX PATH "%PATH%;C:\path\to\where\the\command\resides"
这里应该避免使用等号“=”,不要担心空格!对于包含空格的路径,不需要再插入任何引号——分隔符号';'就可以了。
SETX后面的PATH关键字定义了在系统环境变量可能的值中应该改变哪一组值,而引号内的%PATH%(被百分号包围的单词PATH)告诉操作系统保持现有PATH值不变,并将下面的路径(跟随分隔符号';'的路径)添加到现有值中。