我想在我的NSIS脚本编译时调用一个函数(计算我的版本号),但是在执行时却不行。这可能吗?它使用nsExec
和基本的字符串操作函数。
答案 0 :(得分:2)
你可以这样做:
!system '"calculate_version.exe" "tempfile.tmp"'
!searchparse /file "tempfile.tmp" `APP_VERSION=` APPVERSION
这是做什么的:调用calculate_version.exe(这可能是一个调用你的函数的简单NSIS脚本)。此可执行文件应将版本号输出到tempfile.tmp。版本的格式无关紧要;在这个例子中,我选择了“APP_VERSION = something”(这可以使用WriteINIStr
编写)。
在下一行中,我们打开临时文件并搜索我们编写的行;然后我们将$ {APPVERSION}设置为我们在那里找到的任何东西。
答案 1 :(得分:1)
甜!有可能:见http://nsis.sourceforge.net/Invoking_NSIS_run-time_commands_on_compile-time
基本理念是:
!system
,在编译时) - 这将生成一个文本文件(!define
s,无论您需要什么)!include
主脚本中的文本文件和presto!你在脚本编译时生成了一些东西。