我正在尝试将C:\xampp\php
添加到Windows中的系统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
变量添加目录?答案 0 :(得分:871)
使用GUI更改PATH
后,关闭并重新打开控制台窗口。
这是有效的,因为只有在更改后启动的程序才会看到新的PATH
。
在已打开的命令窗口中执行此命令:
set PATH=%PATH%;C:\your\path\here\
此命令将C:\your\path\here\
附加到当前PATH
。
打破它:
set
- 仅为当前cmd会话更改cmd环境变量的命令;其他程序和系统不受影响。PATH=
- 表示PATH
是要临时更改的环境变量。%PATH%;C:\your\path\here\
- %PATH%
部分扩展为PATH
的当前值,然后将;C:\your\path\here\
连接到它。这将成为新的PATH
。答案 1 :(得分:175)
警告:此解决方案可能对您的路径具有破坏性,以及系统的稳定性。作为副作用,它将合并您的用户和系统PATH,并将PATH截断为1024个字符。此命令的效果是不可逆转的。首先备份PATH。有关详细信息,请参阅注释。
不要盲目地复制粘贴它。请谨慎使用。
您可以永久使用setx
命令添加PATH
的路径:
setx /M path "%path%;C:\your\path\here\"
如果要设置用户/M
而不是系统PATH
,请删除PATH
标记。
注意:
setx
命令仅在Windows 7及更高版本中可用。您应该从提升的命令提示符运行此命令。
如果您只想为当前会话更改它,请使用set。
答案 2 :(得分:122)
这只会修改注册表。现有流程不会使用这些值。如果在 之后 ,则
您没有指定启动控制台会话的方式。确保这一点的最佳方法是退出命令shell并再次运行它。然后它应该继承更新的PATH。
答案 3 :(得分:58)
您不需要任何set
或setx
命令,只需打开终端并输入:
PATH
这显示了PATH变量的当前值。现在要添加目录吗?只需输入:
PATH %PATH%;C:\xampp\php
如果出于任何原因想要清除PATH变量(根本没有路径或删除其中的所有路径),请输入:
PATH ;
<强>更新强>
就像Danial Wilson在下面的评论中指出的那样,它只在当前会话中设定了路径。要设置路径永久使用setx
,但请注意,虽然这会永久设置路径但不在当前会话中,因此您必须启动新命令行才能查看更改,更多信息here。
要检查环境变量是否存在或查看其值,请使用ECHO commnad:
echo %YOUR_ENV_VARIABLE%
答案 4 :(得分:34)
在这个PowerShell时代,我会像这样编辑PATH:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")
要在机器范围内为所有用户设置变量,最后一行应该是:
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
在PowerShell脚本中,您可能希望在添加到PATH之前检查C:\xampp\php
是否存在(如果之前已添加)。您可以将其包装在if
条件中。
所以把它们放在一起:
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
答案 5 :(得分:29)
点头对@Nafscript's initial SETX
answer的所有评论。
SETX
会更新用户路径。SETX ... /M
将更新系统路径。%PATH%
包含附加了用户路径的系统路径PATH
- SETX
将截断您的垃圾超过1024个字符SETX %PATH%;xxx
- 将系统路径添加到用户路径中SETX %PATH%;xxx /M
- 将用户路径添加到系统路径中 ss64 SETX page有一些非常好的例子。重要的是,它指向SETX
与SETX /M
用户变量:
HKCU\Environment
系统变量:
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
。 必须以管理员身份运行。
(除了使用不同的Key
和SETX /M
修饰符之外,它基本相同)
@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
最后,ss64 SETX页面建议使用一个名为SETENV的改进版本,该版本可以拆分设置用户或系统环境变量。
1。不完全正确
答案 6 :(得分:23)
晚会 - 但如果您已经在要添加到PATH的目录中,则会很方便。
set PATH=%PATH%;%CD%
编辑:根据评论 - 适用于标准的Windows cmd,但不适用于PowerShell。
对于powershell,%CD%
等效项为[System.Environment]::CurrentDirectory
答案 7 :(得分:19)
如果使用setx错误输入路径怎么办?最好的方法是通过Windows U.I. 控制面板 - &gt;所有控制面板项目 - &gt;系统 - &gt;高级系统设置 - &gt;环境变量
向下滚动到路径并选择编辑。您也可以将其复制并粘贴到您喜欢的编辑器中,这样您就可以看到整个路径并更容易编辑它。
答案 8 :(得分:3)
除了所有答案之外,如果你想要一个漂亮的GUI工具来编辑你的windows环境变量,你可以使用Rapid Environment Editor
试试吧!它的使用安全且棒极了!答案 9 :(得分:3)
覆盖已包含的可执行文件;
设置PATH = C:\ xampp \ php;%PATH%;
答案 10 :(得分:1)
答案 11 :(得分:1)
在Windows 10 LTSB上检查上述建议,并瞥见&#34; help&#34;轮廓(在cmd上键入&#39;命令/?&#39;时可以查看),将我带到 结论是PATH命令仅为当前会话更改系统环境变量Path值,但重启后所有值都重置为默认值 - 正如使用PATH命令之前一样。
另一方面,使用具有管理权限的SETX命令更强大,它会更好地更改这些值(或者至少在下次使用此命令之前或直到下次这些值被手动GUI操作... )。
但是为了清楚起见,我认为在这里分享最好的SETX语法用法 那对我有用的人可能有一天会帮助别人:
SETX PATH "%PATH%;C:\path\to\where\the\command\resides"
其中任何等号&#39; =&#39;应该避免,不要担心 空格!不需要为路径添加任何引号 其中包含空格 - 分裂符号&#39;;&#39;做好这份工作。
SETX后面的PATH关键字定义了应在系统环境变量可能值中更改哪组值,并且引号内的%PATH%(由百分号包围的单词PATH)告诉操作系统保留现有的PATH值,并将以下路径(分割符号后面的路径&#39 ;;&#39;)添加到现有值。
HTH
答案 12 :(得分:1)
关于点 2 我使用的是一个简单的批处理文件,它为我填充PATH
或其他环境变量。因此,默认情况下不会污染环境变量。这个批处理文件可以从任何地方访问,所以我可以输入:
c:\>mybatchfile
-- here all env. are available
c:\>php file.php
答案 13 :(得分:0)
在命令提示符中,告诉Cmd使用Explorer的命令行,并将其添加到start
。
所以start Yourbatchname
。
请注意,您必须注册,就好像它的名称是batchfile.exe
。
程序和文档可以添加到注册表中,因此在“开始 - 运行”对话框或快捷方式中键入其名称而不显示其路径,Windows可以找到它们。
这是一个通用的reg文件。将下面的行复制到新的文本文档并将其另存为anyname.reg。使用您的程序或文档进行编辑。
在路径中使用\来分隔关键路径中的文件夹名称,因为regedit使用单个\来分隔它的键名。所有reg文件都以REGEDIT4开头。分号将一行转换为注释。 @符号表示将值赋给键而不是命名值。
该文件不必存在。这可用于设置Word.exe以打开Winword.exe。
键入start batchfile
将启动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\\"
你已经被告知另一个答案中的路径了。另请参阅doskey /?
了解cmd宏(它们仅在键入时有效)。
您可以为CMD运行启动命令。从Windows Recource Kit技术参考
自动运行
HKCU\Software\Microsoft\Command Processor
Data type Range Default value
REG_SZ list of commands There is no default value for this entry.
<强>描述强>
包含每次启动Cmd.exe时执行的命令。
答案 14 :(得分:0)
控制面板的一个更好的替代方法是使用sourceforge中名为Pathenator的免费软件程序:
https://sourceforge.net/projects/pathenator/
但是,只有拥有Dot.Net 4.0或更高版本的系统的工作人员,例如Windows 7,8或10。
答案 15 :(得分:0)
如果您运行命令cmd
,它将更新该命令窗口的所有系统变量。
答案 16 :(得分:0)
使用路径为gtools
它以直观的方式执行操作,例如:
pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"
它并显示结果,无需生成新的cmd !
答案 17 :(得分:0)
虽然琐碎,但遇到此问题时,我不得不重新启动Windows 。
我正在运行Windows 7 x64。我对系统PATH变量进行了手动更新。如果我从stat菜单运行cmd.exe,这行得通。但是,如果我在Windows资源管理器的地址栏中键入“ cmd”,则似乎是从其他位置加载了PATH,而这些更改没有我的手动更改。
(为避免疑问,是的,我在重新启动之前关闭并重新运行了cmd几次,但这没有帮助。)
答案 18 :(得分:0)
在Windows 10上,我能够搜索设置路径环境变量并获得以下说明:
C:\ Program Files; C:\ Winnt; C:\ Winnt \ System32
我第一次搜索它时,它立即弹出“系统属性”窗口。之后,我找到了上面的说明。
答案 19 :(得分:-1)
备份我当前的PATH环境变量:运行cmd
,并执行命令:path >C:\path-backup.txt
以相同的方式将当前路径值保存到C:\ path.txt文件中
setx path "Here you should insert string from buffer (new path value)"
php -v