2010-01-04 56 views

回答

13

按照Inno Setup的文档中this page,环境变量的值,可以使用以下语法检索:试图指定文件的源位置时

{%name|default} 
+1

我不能出于某种原因使用env变量。有人可以发表一个例子吗?我在输出文件名中添加了{%OS},并且所有返回的都是附加字符串“{%OS}”的原始文件名 - 而不是我想要的环境值。 – Tim 2010-06-13 04:45:51

+3

@Tim:如果要在[code]中使用字符串中的变量,请使用ExpandConstant('{%OS}') – panschk 2010-11-20 16:12:18

14

我遇到了同样的问题[文件]部分。我使用GetEnv函数来定义一个新常量。

#define Qt5 GetEnv('QT5') 
[Files] 
Source: {#Qt5}\bin\Qt5Concurrent.dll; DestDir: {app}; 
+0

这是在定义中使用的正确方法。 {%name |默认}表示法不在那里工作。 – pHiL 2014-01-07 22:18:52

+0

太好了,谢谢!我现在正在寻找一种表达默认值的方式,但这是一个好的开始。 – CJBrew 2014-05-06 11:19:00

+0

尝试 '' 的#define QT5 GETENV( 'QT5') #如果QT5 == “” 的#define QT5 “嗒嗒” #ENDIF '' – 2015-07-12 15:47:56

-1

它可以更容易:

OutputDir={#GetEnv("TEMP")}\ 
+0

这是一个预处理宏。它在编译时解决! – 2017-05-10 17:44:30

-1

如果变量TEMP不存在,那么将使用默认值 - ..\..\distr\))))

OutputDir={#StringChange(GetEnv("TEMP")+"\", StringChange(GetMD5OfString(GetEnv("TEMP")), "d41d8cd98f00b204e9800998ecf8427e", "\"), "..\..\distr\")} 
+0

这是一个预处理宏。它在编译时解决! – 2017-05-10 17:45:03

相关问题