2010-01-04 9 views

risposta

13

Secondo this page nella documentazione Inno Setup, il valore delle variabili d'ambiente possono essere recuperate utilizzando la seguente sintassi:

{%name|default} 
+1

non posso utilizzare le variabili env per qualche motivo. Qualcuno può pubblicare un esempio? Ho aggiunto {% OS} al nome del file di output e tutto ciò che ottengo è il nome del file originale con la stringa "{% OS}" aggiunta, non il valore che voglio dall'ambiente. – Tim

+3

@Tim: Se si desidera utilizzare la variabile in una stringa all'interno del [codice], utilizzare ExpandConstant ('{% OS}') – panschk

14

Ho incontrato lo stesso problema quando si cerca di specificare la posizione di origine dei file nella Sezione [Files]. Ho usato la funzione GetEnv per definire una nuova costante.

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

questo è il modo corretto di utilizzare in define. la notazione {% name | default} non funziona. – pHiL

+0

È grandioso, grazie! Ora sto cercando un modo per esprimere un valore predefinito, ma è un buon inizio. – CJBrew

+0

Prova '' #define QT5 getenv ('QT5') #if QT5 == "" #define QT5 "blah" #endif '' –

-1

Può essere ancora più semplice:

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

Questa è una macro di preprocessore. È risolto in fase di compilazione! –

-1

Se la variabile TEMP non esiste, allora il valore di default sarà usato - ..\..\distr\))))

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

Questa è una macro del preprocessore. È risolto in fase di compilazione! –

Problemi correlati