在NSIS脚本中获取PATH变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在NSIS脚本中获取PATH变量相关的知识,希望对你有一定的参考价值。

我无法弄清楚如何在NSIS脚本中获取PATH变量。这是我尝试过的,但它在$ 0中返回'error':

nsExec::ExecToStack 'echo %PATH%'
Pop $0
MessageBox MB_OK "$0"

还尝试用$ s逃避%标志,但无济于事。仅使用一些字符串而不是%PATH%也不起作用。我看到一个建议的例子,就像这个使用Exec而不是ExecToStack,但这也不起作用。我错过了什么?

答案

NSIS已经有了一个内置的指令:ReadEnvStr $0 PATH

ExecToStack不起作用,因为echo是cmd.exe中的内部命令,而不是.exe。你必须以cmd.exe /c echo %path%的身份执行它。

请记住,%path%可能比NSIS字符串限制更长,因此在将其存储在NSIS变量中后,不应将其写回注册表。使用EnVar plug-in安全地修改%path%。

以上是关于在NSIS脚本中获取PATH变量的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSIS 的 ExecDos 插件获取批处理脚本 exitCode

NSIS安装包脚本

NSIS脚本

NSIS - 安装程序:将套件版本与头文件定义变量进行比较,如果错误定义变量值则更新

NSIS 打包脚本基础

如何在 NSIS 脚本中使用 REMOVE 或 REPAIR 功能?