Shell 更改路径变量后,如何将所做的更改应用于该变量?

Shell 更改路径变量后,如何将所做的更改应用于该变量?,shell,batch-file,phantomjs,environment-variables,Shell,Batch File,Phantomjs,Environment Variables,在我的.bat文件中,我使用了以下代码: setx /m path "%PATH%;%~dp0" %~dp0 将.bat文件的当前目录添加到系统路径 但在进入系统设置并编辑path变量之前,我不能使用cmd运行phantomjs.exe(在同一目录中)。我实际上没有做任何更改,只需单击“编辑”,然后单击“确定”应用更改 我需要在脚本中添加什么,以便在无需进入系统设置的情况下运行phantomjs.exe 编辑:我使用的笔记本电脑是32位操作系统,没有应用更改。我使用codesetx/m pat

在我的.bat文件中,我使用了以下代码:

setx /m path "%PATH%;%~dp0" %~dp0
将.bat文件的当前目录添加到系统路径

但在进入系统设置并编辑path变量之前,我不能使用cmd运行phantomjs.exe(在同一目录中)。我实际上没有做任何更改,只需单击“编辑”,然后单击“确定”应用更改

我需要在脚本中添加什么,以便在无需进入系统设置的情况下运行phantomjs.exe

编辑:我使用的笔记本电脑是32位操作系统,没有应用更改。我使用code
setx/m path%path%%~dp0在64位操作系统上对其进行了测试,并且不必打开path变量即可立即应用更改


如何在32位操作系统上实现此功能?

使用
set
setx
Setx
用于将来的窗口,而
set
用于当前窗口。混合并匹配您想要的方式。

所以当您希望使用phantomjs.exe时,您必须手动运行一次脚本来更新路径?这与手动更新路径一次有什么不同?(这只是一个有用的问题,除非脚本在系统启动时自动启动)…说到您的实际问题,运行脚本时您的CMD打开了吗?您是否以管理员身份运行脚本?如前所述,您需要以管理员身份运行
setx/m
才能工作。无论如何,环境更改不会在同一
cmd
会话中生效。如果要从同一批处理文件中运行
phantomjs.exe(在同一目录中)
,只需编写
%~dp0phantomjs.exe
@slashinsoulz,请阅读和上的答案。最后一个例子通过一个简单的分步示例解释了Windows环境变量管理。@Mofi在我的测试中,我删除了批处理中除那行代码之外的所有内容,它正常工作了。phantomjs.exe与批处理文件位于同一目录中。如果你读了我的编辑,它解释了它是64位的。如果没有更多的细节,比如所有目录路径和批处理文件的真实代码,我就帮不了你了
setx/m路径“%path%”;%~dp0”%~dp0
由于第四个参数而错误,并且如果路径字符串尚未以分号结尾,
setx/m路径%path%%~dp0
也错误。用于更新系统路径的方法一点也不好,参考答案对此进行了详细解释,并提供了更好的批处理代码。