将目录添加到Windows的PATH环境变量中
我想把C:\xampp\php
添加到我的系统PATH
环境变量中,在Windows中。
我已经用环境变量对话框添加了它。
但当我在控制台中输入
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
我有两个问题。
1.为什么会发生这种情况?是不是我做错了什么?
2.另外,我如何使用控制台将目录添加到我的PATH
变量中(以及用批处理文件进行编程)?
489
18
选项1
在你用GUI修改
PATH
后,关闭并重新打开控制台窗口。这样做的原因是只有在修改后启动的程序才能看到新的`PATH'。
选项2
在你所打开的命令窗口中执行这个命令。
该命令将
C:
your\path\here添加到当前的
PATH`中。把它分解开来。
set
- 一个改变cmd'环境变量的命令,只针对当前cmd会话;其他程序和系统不受影响。PATH=
- 标志着PATH
是要暂时改变的环境变量。%PATH%;C:your\path\here
-%PATH%
部分扩展为PATH
的当前值,然后;C:your\path\here
被连接到它。这将成为新的`PATH'。你可以用
setx
命令永久地一个路径到PATH
。如果你想设置用户的
PATH'而不是系统的
PATH',请删除`M'标志。注释。
setx
命令只在Windows 7和更高版本中可用。你应该在高位的命令提示符下运行这个命令。
如果你只想在当前会话中改变它,使用set。
这只是修改了注册表。 一个现有的进程不会使用这些值。如果一个新的进程是在这一修改之后启动的,并且没有从其父辈那里继承旧的环境,那么它就会使用这些值。
你没有说明你是如何启动控制台会话的。 确保这一点的最好方法是退出命令外壳并再次运行它。然后它应该会继承更新的PATH。
你不需要任何 "set "或 "setx "命令,只需打开终端并输入。
这就显示了PATH变量的当前值。现在你想把目录添加到其中吗?只需键入。
如果出于任何原因,您想清除PATH变量(完全没有路径或删除其中的所有路径),请输入。
更新
就像Danial Wilson在下面的评论中指出的,它只在当前会话中设置路径。要永久设置路径,请使用
setx
,但要注意,虽然它永久设置了路径,但不是在当前会话中,所以你必须启动一个新的命令行才能看到变化,更多信息这里。要检查环境变量是否存在或查看其值,请使用ECHO commnad。
我会用PowerShell代替!。
要使用PowerShell向PATH添加目录,请执行以下操作。
要为全机的所有用户设置变量,最后一行应该是这样的:
。
在PowerShell脚本中,你可能想在添加到PATH之前检查你的
C:\xampp\php
的存在(如果它已经被添加过)。 你可以用一个 "if "条件来包装它。所以把所有的东西放在一起。
更好的是,可以创建一个通用函数。 只要提供你想添加的目录即可。
你可以通过做一些打磨来让事情变得更好。 例如,使用
Test-Path
来确认你的目录是否真的存在。更安全的SETX
对@Nafscript最初的
SETX
答案的所有评论点个头。SETX
默认会更新你的用户路径。SETX ... /M
将更新你的系统路径。%PATH%
包含系统路径和用户路径。警告
PATH
-SETX
将截断超过1024个字符的垃圾。SETX %PATH%;xxx
- 将系统路径添加到用户路径中。SETX %PATH%;xxx /M
- 将用户路径添加到系统路径中。ss64 SETX页面]1有一些非常好的例子。重要的是它指出了 "SETX "与 "SETX /M "的注册表键的位置。
使用说明
添加到用户
PATH
中`append_user_path.cmd'。
添加到系统
PATH
中append_system_path.cmd
. 必须以管理员身份运行。(除了不同的 "键 "和 "SETX /M "修饰语外,基本上是一样的)
替代品
最后,可能有一个改进的版本,叫做SETENV,由ss64的SETX页面推荐,将设置用户或系统环境变量分开。
姗姗来迟--但如果你已经在你想添加到PATH的目录中,就很方便了。
set PATH=%PATH%;%CD%
。编辑。 根据评论--在标准的windows cmd中有效,但在powerhell中无效。
对于powershell,
%CD%
相当于[System.Environment]::CurrentDirectory
。如果你用setx打错了路径怎么办? 最好的方法就是通过windows的U.I.。 控制面板->所有控制面板项->系统->高级系统设置->环境变量。
向下滚动到路径,选择编辑。 你也可以将它复制并粘贴到你最喜欢的编辑器中,这样你就可以看到整个路径,更容易编辑它。
除了所有的答案之外,如果你想要一个漂亮的GUI工具来编辑你的windows环境变量,你可以使用[快速环境编辑器][1] 。
试试吧! 它的安全使用和真棒!
http://www.rapidee.com/en/
[1]: http://www.rapidee.com/en/
覆盖已经包含的可执行文件。
在Windows 10 LTSB上查看上述建议,并在"帮助" 概要(在cmd上输入'命令/?'时可以查看),让我找到了"帮助"。 cmd上),让我找到了。 结论是,PATH命令只改变了当前会话的系统环境变量Path值,但在重启后,所有的值都会被重置为默认值,就像使用PATH命令之前一样。
另一方面,使用具有管理权限的SETX命令更加强大,它可以永久地改变这些值(或者至少在下一次使用这个命令之前,或者在下一次手动操作这些值之前......)。 ).
但是为了清楚起见,我想在这里分享一下最好的SETX语法用法 对我有用的东西,也许有一天会对别人有所帮助。
其中任何等号'='。 应该避免,而且你不要担心。 空格! 路径中不需要再加引号。 内含空格的--分割符号';'。 来完成这项工作。
SETX后面的PATH关键字定义了在系统环境变量可能的值中应该改变哪一组值,而引号内的%PATH%(PATH这个词,周围有百分号),则告诉操作系统保持现有的PATH值不变,并将下面的路径(分割符号后面的那个';'。 )添加到现有的值上。
HTH
关于第2点*,我使用的是一个简单的批处理文件,为我填充
PATH
或其他环境变量。 因此,默认情况下没有环境变量的污染。 这个批处理文件可以从任何地方访问,所以我可以打字。在命令提示符中,你用
start
作为前缀,告诉Cmd使用资源管理器的命令行。所以
start Yourbatchname
。注意你要把它的名字注册成
batchfile.exe
。程序和文件可以被添加到注册表中,所以在 "开始-运行 "对话框或快捷方式中键入它们的名称而不是它们的路径,可以让Windows找到它们。
这是一个通用的注册表文件。 将下面的行复制到一个新的文本文档中,并将其保存为anyname.reg。 用你的程序或文档来编辑它。
在路径中使用\来分隔关键路径中的文件夹名,就像regedit使用单个\来分隔它的键名一样。 所有的reg文件都以regedit4开头。 分号将一行变成注释。 @符号的意思是将值分配给键,而不是一个命名的值。
该文件不一定要存在。 这可以用来设置Word.exe打开Winword.exe。
输入
start batchfile
将启动iexplore.exe。你'已经在另一个答案中被告知了路径的问题。 也可以参考
doskey /?
的cmd宏(只有在输入时才有效)。你可以运行CMD的启动命令。 来自Windows资源包技术参考
自动运行
说明
包含每次启动Cmd.exe时执行的命令。
一个更好的替代控制面板的方法是使用这个来自sourceforge的免费程序,叫做Pathenator。
https://sourceforge.net/projects/pathenator/
然而,它只适用于Dot.Net 4.0或更高版本的系统,如windows 7、8或10。
如果运行 "cmd "命令,它将更新该命令窗口的所有系统变量。
使用[gtools][1]中的pathed。
它以一种直观的方式做事情,例如。
并显示结果 不需要生成一个新的cmd !
[1]: http://p-nand-q.com/download/gtools/pathed.html
那次我已经安装了PHP。将php-7***.zip解压到C:\php\中。
备份我当前的PATH环境变量:运行
cmd
,并执行命令。path >C:\path-backup.txt
。把我当前的路径值输入C:\path.txt文件(同样的方法
修改path.txt(当然,我的路径长度超过1024个字符,windows运行了好几年了
setx path "这里你应该从缓冲区插入字符串(新的路径值)"
。php -v
。尽管这很微不足道,但在遇到这个问题时,我不得不重启Windows。
我正在运行Windows 7 x64。我对系统PATH变量进行了手动更新。如果我从stat菜单中运行cmd.exe,这就可以了。但如果我在Windows资源管理器的地址栏中输入 "cmd",它似乎会从其他地方加载PATH,而这些地方并没有我的手动修改。
(为了避免疑问--是的,在我重新启动之前,我确实关闭并重新运行了几次cmd,但这并没有帮助。)