把php的路径加到系统环境内,命令行 - 在Windows中将目录添加到PATH环境变量

命令行 - 在Windows中将目录添加到PATH环境变量

我想在Windows中将C:\xampp\php添加到我的系统PATH环境变量中。

我已经使用Environment Variables对话框添加了它。

但是当我输入我的控制台时:

C:\>path

它不会显示新的PATH目录:

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变量中?

16个解决方案

807 votes

选项1

使用GUI更改%PATH%;C:\your\path\here\后,关闭并重新打开控制台窗口。

这是有效的,因为只有在更改后启动的程序才会看到新的%PATH%;C:\your\path\here\。

选项2

在已打开的命令窗口中执行以下命令:

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

此命令将%PATH%;C:\your\path\here\附加到当前的%PATH%。

打破它:

%PATH%;C:\your\path\here\ - 仅为当前cmd会话更改cmd环境变量的命令; 其他程序和系统不受影响。

%PATH%;C:\your\path\here\ - 表示%PATH%是要临时更改的环境变量。

%PATH%;C:\your\path\here\ - %PATH%部分扩展为当前值PATH,然后将;C:\your\path\here\连接到它。 这成为新的PATH。

JimR answered 2019-01-01T22:08:42Z

156 votes

警告:此解决方案可能会破坏您的PATH以及系统的稳定性。 作为副作用,它将合并您的用户和系统PATH,并将PATH截断为1024个字符。 此命令的效果是不可逆转的。 首先备份PATH。 有关详细信息,请参阅注释。

不要盲目地复制粘贴它。 谨慎使用。

您可以使用setx命令永久添加setx的路径:

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

如果要设置用户PATH而不是系统PATH,请删除setx标志。

笔记:

setx命令仅在Windows 7及更高版本中可用。

您应该从提升的命令提示符运行此命令。

Nafscript answered 2019-01-01T22:09:38Z

117 votes

这只会修改注册表。 在此更改之后启动并且不从其父级继承环境之前,进程不会使用这些值。

您没有指定启动控制台会话的方式。 确保这一点的最佳方法是注销并重新登录。

Hans Passant answered 2019-01-01T22:07:23Z

52 votes

您不需要任何setx或setx命令,只需打开终端并键入:

PATH

这显示了PATH变量的当前值。 现在要添加目录吗? 只需输入:

PATH %PATH%;C:\xampp\php

如果出于任何原因想要清除PATH变量(根本没有路径或删除其中的所有路径),请键入:

PATH ;

更新

就像Danial Wilson在下面的评论中所指出的那样,它只在当前会话中设定了路径。 要永久设置路径,请使用setx,但请注意,虽然它会永久设置路径但不在当前会话中,因此您必须启动新命令行才能查看更改,此处有更多信息。

要检查环境变量是否存在或查看其值,请使用ECHO命令:

echo %YOUR_ENV_VARIABLE%

zar answered 2019-01-01T22:10:27Z

28 votes

在这个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")

}

Ifedi Okonkwo answered 2019-01-01T22:11:08Z

23 votes

晚到派对 - 但如果您已经在要添加到PATH的目录中,则会很方便。

%CD%

编辑:根据评论 - 使用标准的Windows cmd但不在powershell中。

对于powershell,%CD%的等价物是[System.Environment]::CurrentDirectory

nclord answered 2019-01-01T22:11:49Z

23 votes

更安全的SETX

对@ Nafscript最初的Key答案的所有评论点头。

默认情况下,Key将更新您的用户路径。

Key将更新您的系统路径。

Key包含附加了用户路径的系统路径

警告

备份你的Key - Key将截断你的垃圾超过1024个字符

请勿致电Key - 将系统路径添加到用户路径中

请勿致电Key - 将用户路径添加到系统路径中

使用过多的批处理文件会导致失明

ss64 SETX页面有一些很好的例子。 重要的是,它指向注册表项的位置Key vs SETX /M

用户变量:

Key

系统变量:

Key

使用说明

附加到用户Key

Key

@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

附加到系统Key

Key.必须以管理员身份运行。

(它基本相同,只是使用不同的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.严格来说并非如此

icc97 answered 2019-01-01T22:14:27Z

18 votes

如果您使用setx错误输入路径怎么办? 最好的方法是通过Windows U.I.控制面板 - >所有控制面板项目 - >系统 - >高级系统设置 - >环境变量

向下滚动到Path并选择Edit。 您还可以将其复制并粘贴到您喜欢的编辑器中,以便您可以查看整个路径并更轻松地编辑它。

Thomas Fonseca answered 2019-01-01T22:14:55Z

3 votes

命令行更改不会是永久性的,在控制台关闭时将丢失。

路径的工作方式就像先到先得。

您可能希望覆盖其他已包含的可执行文件。 例如,如果您的路径上已经有另一个版本,并且想要添加不同版本而不对路径进行永久更改,则应将该目录放在命令的开头。

覆盖已包含的可执行文件;

设置PATH = C:\ xampp \ php;%PATH%;

hevi answered 2019-01-01T22:15:43Z

2 votes

除了所有答案之外,如果您想要一个很好的GUI工具来编辑Windows环境变量,您可以使用Rapid Environment Editor

试试吧! 它使用安全,真棒!

[http://www.rapidee.com/en/]

Mp de la Vega answered 2019-01-01T22:16:17Z

1 votes

关于第2点,我正在使用一个简单的批处理文件,为我填充PATH或其他环境变量。 因此,默认情况下不会污染环境变量。 可以从任何地方访问此批处理文件,因此我可以键入:

c:\>mybatchfile

-- here all env. are available

c:\>php file.php

您可以在此查看有关此简单方法的更多详细信息。

Grzegorz Gajos answered 2019-01-01T22:16:46Z

1 votes

在Windows 10 LTSB上查看上述建议,并瞥见“帮助”大纲(在cmd上键入'command /?'时可以看到),让我进入结论是PATH命令仅为当前会话更改系统环境变量Path值,但在重新引导后,所有值都重置为其默认值 - 就像使用PATH命令之前一样。

另一方面,使用具有管理权限的SETX命令更强大,它会更好地更改这些值(或者至少直到下次使用此命令或直到下次手动GUI操作这些值...)。

但为了清楚起见,我认为在这里分享最好的SETX语法用法那对我有用的人可能有一天会帮助别人:

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

应该避免任何等号“=”,你不用担心空格! 不需要为路径添加任何引号其中包含空格 - 分裂符号';' 做好这份工作。

SETX后面的PATH关键字定义了应在系统环境变量可能值中更改哪组值,并且引号内的%PATH%(由百分号包围的单词PATH)告诉操作系统保留现有值 PATH值原样并将以下路径(分裂符号';'后面的路径)添加到现有值。

HTH

such_ke_nasdeeq answered 2019-01-01T22:17:36Z

0 votes

在命令提示符中,您告诉Cmd使用Explorer的命令行,方法是使用doskey /?。

所以doskey /?。

请注意,您必须注册,就好像它的名称是doskey /?。

程序和文档可以添加到注册表中,因此在“开始 - 运行”对话框或快捷方式中键入其名称而不使用其路径,Windows可以找到它们。

这是一个通用的reg文件。 将下面的行复制到新的文本文档并将其另存为anyname.reg。 使用您的程序或文档进行编辑。

在路径中使用\来分隔关键路径中的文件夹名称,因为regedit使用单个\来分隔它的键名。 所有reg文件都以REGEDIT4开头。 分号将一行转换为注释。 @符号表示将值分配给键而不是命名值。

该文件不必存在。 这可用于设置Word.exe以打开Winword.exe。

键入doskey /?将启动iexplore.exe。

REGEDIT4

;The bolded name below is the name of the document or program, .

[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\\"

你已经在另一个答案中被告知了路径。 有关cmd宏的信息,请参阅doskey /?(它们仅在键入时有效)。

您可以为CMD运行启动命令。 从Windows资源工具包技术参考

自动运行

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时执行的命令。

answered 2019-01-01T22:19:10Z

0 votes

控制面板的一个更好的替代方法是使用sourceforge中名为Pathenator的免费软件程序:

[https://sourceforge.net/projects/pathenator/]

但是,它只适用于具有Dot.Net 4.0或更高版本的系统,例如Windows 7,8或10。

Bill Moore answered 2019-01-01T22:19:45Z

0 votes

如果运行命令cmd,它将更新该命令窗口的所有系统变量。

RBXII3 answered 2019-01-01T22:20:06Z

0 votes

我那时已经安装了PHP。 将php-7 ***。zip解压缩到C:\ php \

备份我当前的PATH环境变量:运行php -v,并执行命令:path >C:\path-backup.txt

将我当前的路径值获取到C:\ path.txt文件(以相同方式)

修改path.txt(当然,我的路径长度超过1024个字符,窗口运行几年)我删除了那里的重复路径,比如'C:\ Windows; 或C:\ Windows \ System32; 或C:\ Windows \ System32 \ Wbem; - 我有两次。

还删除卸载的程序路径。 示例:C:\ Program Files \ NonExistSoftware;

这样,我的路径字符串长度< 1024 :)))

在路径字符串末尾添加; C:\ php \

仅将路径值复制到带有框架双引号的缓冲区中! 示例:“C:\ Windows; ****; C:\ php \”没有PATH =应该在那里!!!

以管理员身份打开Windows PowerShell。

运行命令:

php -v

重新运行您的终端(我使用“远程经理”)并检查:php -v

Serb answered 2019-01-01T22:21:44Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值