NSIS编译时命令计算txt文件并将结果设置为全局变量

问题描述 投票:0回答:1

我是 NSIS 初学者,我需要一些帮助。我有一个包含多行数字的 txt 文件。我想使用编译时命令(例如 !system 或其他)读取每一行数字,将它们相加,并将总和转换为可在脚本中使用的全局变量。任何人都可以提出一个很好的方法来实现这一目标吗?非常感谢您!

我写了

!system 'for /f "tokens=1" %a in (filesize.txt) do set /a sum+=%a'

运行成功,从编译日志可以看出已经计算出结果。如何将命令行输出的计算结果转换为可以全局使用的变量?

nsis
1个回答
0
投票

您必须将标准输出重定向到您可以的文件

!include

!tempfile STDOUT
!system 'echo StrCpy $0 1234 >> "${STDOUT}"'
!include "${STDOUT}"
!delfile "${STDOUT}"
!undef STDOUT

如果命令很复杂,您可能需要制作一个批处理文件:

!tempfile BAT
!appendfile "${BAT}.bat" 'echo foo >> %1$\n'
!appendfile "${BAT}.bat" 'dir bar >> %1$\n'
!tempfile STDOUT
!system '"${BAT}.bat" "${STDOUT}"'
!delfile "${BAT}.bat"
!undef BAT
!include "${STDOUT}"
!delfile "${STDOUT}"
!undef STDOUT
© www.soinside.com 2019 - 2024. All rights reserved.