2010-01-04 17 views

Respuesta

13

Según this page en la documentación de la disposición de Inno, el valor de las variables de entorno puede ser recuperada mediante la siguiente sintaxis:

{%name|default} 
+1

Soy incapaz de use las variables env por alguna razón. ¿Alguien puede publicar un ejemplo? Agregué {% OS} al nombre del archivo de salida y todo lo que recibo es el nombre del archivo original con la cadena "{% OS}" adjuntada, no el valor que quiero del entorno. – Tim

+3

@Tim: si desea usar la variable en una cadena dentro de su [código], use ExpandConstant ('{% OS}') – panschk

14

me encontré con el mismo problema cuando se trata de especificar la ubicación de origen de los archivos de la [Archivos] sección. Usé la función GetEnv para definir una nueva constante.

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

esta es la forma correcta de usar en define. la notación {% name | default} no está funcionando allí. – pHiL

+0

¡Eso es genial, gracias! Ahora estoy buscando una forma de expresar un valor predeterminado, pero es un buen comienzo. – CJBrew

+0

Trate '' #define QT5 getenv ('QT5') #if QT5 == "" # define QT5 "bla" #endif '' –

-1

Puede ser aún más fácil:

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

Eso es una macro preprocesador. ¡Se resuelve en tiempo de compilación! –

-1

Si la variable TEMP no existe, entonces el valor por defecto será utilizado - ..\..\distr\))))

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

Esa es una macro de preprocesador. ¡Se resuelve en tiempo de compilación! –

Cuestiones relacionadas