首页 > 解决方案 > 在 NSIS 中复制变量

问题描述

我正在使用 Wizou 的 nsisXML 来读取和写入 XML 配置文件。在卸载程序中,我想报告卸载了哪个版本。我的应用程序有多个部分,每个部分都有一个版本字符串。

这就是我报告的方式:

inetc::post '{"extra":{"app1":"$u_app1","app2":"$u_app2", "app3":"$u_app3", "app4":"$u_app4", "app5":"$u_app5" }}' /SILENT /HEADER "Content-Type: application/json" "https://myurl.com/uninstalled" /CONNECTTIMEOUT -5

nsisXML 的问题在于它写入 nsis 寄存器 $0、$1、$2、$3 等等。如果我从多个节点读取,则返回值存储在 $3 中,并且每次读取都会被覆盖。

 nsisXML::create
nsisXML::load "conf.dont.touch.xml"
nsisXML::select "/data/app1"
nsisXML::getText ;stored in $3
nsisXML::select "/data/app2"
nsisXML::getText ;stored in $3
nsisXML::select "/data/app3"
nsisXML::getText ;stored in $3
nsisXML::select "/data/app4"
nsisXML::getText ;stored in $3
nsisXML::select "/data/app5"
nsisXML::getText ;stored in $3


need $u_app1, $u_app2,$u_app3,$u_app4,$u_app5 at the same time

inetc::post '{"extra":{"app1":"$u_app1","app2":"$u_app2", "app3":"$u_app3", "app4":"$u_app4", "app5":"$u_app5" }}' /SILENT /HEADER "Content-Type: application/json" "https://myurl.com/uninstalled" /CONNECTTIMEOUT -5

如何复制$3到一个$R1或任何自定义变量,以便以后使用它?

标签: windowswindows-installernsis

解决方案


变量只是字符串,因此您可以将它们复制为字符串:

var whatever

Section
StrCpy $R1 $3
StrCpy $whatever $3
SectionEnd

推荐阅读