如何使用PHP永久更新PATH变量

时间:2013-03-15 14:08:52

标签: php registry environment-variables

您好,我想通过PHP脚本永久更新Path环境变量。我知道putenv()但它不是永久性的。我已经阅读了一些生成.reg文件的地方,其中包含以下内容。

 Windows Registry Editor Version 5.00
 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
                    'PATH'='c:/abc/test/ImageMagick-6.7.8-Q8/convert.exe'

我已经生成了包含内容的文件。

当我运行此文件时,它会显示文件已成功运行,并且包含在文件中的键值已成功添加到注册表中。但是当我去路径变量检查时,我的值不存在:-( 任何人都可以告诉我为什么会这样。我正在使用window 7。但我的工作也必须与窗口xp兼容。或者还有其他方法可以完成这项任务吗?

需要建议......

最好的问候

2 个答案:

答案 0 :(得分:0)

创建进程时,注册表中的PATH环境变量将复制到进程的环境中。

cmd.exe(命令窗口或shell)本身就是一个进程。你必须在shell中SET PATH=来改变它。

如果打开新的命令窗口,则应设置新的PATH。另请参阅Programmatically adding a directory to Windows PATH environment variable

答案 1 :(得分:0)

您好我已经解决了这个问题。我通过创建.bat文件解决了这个问题。 .bat文件的内容类似于

 @echo off
 set KeyName=Path
 set KeyValue="D:\songs;%PATH%"
 setx -m %KeyName% %KeyValue%
如果您要将其设置为-m,则使用

system level for all users。如果您只想为当前用户设置,请删除-m。上面的命令会在environement D:\songs变量中设置Path。要运行它,您需要成为系统的管理员。

如果这对任何人都有用,请加油: - )