代码之家  ›  专栏  ›  技术社区  ›  dicroce

可以在Inno安装脚本中使用环境变量吗?

  •  20
  • dicroce  · 技术社区  · 16 年前

    我需要找到一种方法来引用Inno安装脚本文件(.iss)中的环境变量。。。

    6 回复  |  直到 16 年前
        1
  •  16
  •   Nathan Osman    10 年前

    根据 this page 在Inno Setup文档中,可以使用以下语法检索环境变量的值:

    {%name|default}
    
        2
  •  20
  •   goran    12 年前

    #define Qt5 GetEnv('QT5')
    [Files]
    Source: {#Qt5}\bin\Qt5Concurrent.dll; DestDir: {app}; 
    
        3
  •  11
  •   Martin Prikryl    5 年前

    如果要解析上的变量,则语法不同 或者 编译时


    准时安装

    {%NAME|DefaultValue} "constant" .

    [Files]
    Source: "MyApp.dat"; Dest: "{%MYAPP_DATA_PATH|{app}}"
    

    如果需要在Pascal脚本代码中解析目标计算机上的变量,可以使用 GetEnv support function .

    Path := GetEnv('MYAPP_DATA_PATH');
    

    关于编译时

    如果在编译安装程序时需要解析源计算机上的变量,可以使用 GetEnv preprocessor function

    [Files]
    Source: "MyApp.dat"; Dest: "{#GetEnv('MYAPP_DATA_PATH')}"
    

    即使在Pascal脚本中也可以使用相同的语法,尽管只有在非常特殊的情况下才有意义。

    Path := '{#GetEnv('MYAPP_DATA_PATH')}';
    
        4
  •  2
  •   Максим Румянцев    9 年前

    OutputDir={#GetEnv("TEMP")}\
    
        5
  •  1
  •   Максим Румянцев    9 年前

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

    OutputDir={#StringChange(GetEnv("TEMP")+"\", StringChange(GetMD5OfString(GetEnv("TEMP")), "d41d8cd98f00b204e9800998ecf8427e", "\"), "..\..\distr\")}
    
        6
  •  0
  •   Violet Giraffe    7 年前

    我想不出如何使用这个工具 {%name|default}

    #if GetEnv('EXTRA_FILE_LOCATION') != ""
    #define EXTRA_LOCATION=GetEnv('EXTRA_FILE_LOCATION')
    #else
    #define EXTRA_LOCATION="."
    #endif
    Source: {#EXTRA_LOCATION}\ExtraFile.data; DestDir: {app};