在 NSIS 脚本中获取 PATH 变量

zeu*_*300 1 nsis environment-variables

我不知道如何获取 NSIS 脚本中的 PATH 变量。这是我尝试过的,但它在 $0 中返回“错误”:

nsExec::ExecToStack 'echo %PATH%'
Pop $0
MessageBox MB_OK "$0"
Run Code Online (Sandbox Code Playgroud)

还尝试用 $s 转义 % 符号,但无济于事。仅放置一些字符串而不是 %PATH% 也不起作用。我看到一个建议的示例,就像这个使用 Exec 而不是 ExecToStack 的示例,但这也不起作用。我缺少什么?

And*_*ers 5

NSIS 已经为此提供了内置指令:ReadEnvStr $0 PATH

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

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