【问题标题】:How to change TARGET DIRECTORY/path of installation for EXE file during SILENT installation如何在静默安装期间更改 EXE 文件的目标目录/安装路径
【发布时间】:2021-01-01 08:59:31
【问题描述】:

我正在尝试静默安装 exe 软件,同时在安装过程中更改目标目录

我无法在安装过程中更改路径/目录。

我知道可用于 exe 文件的开关,我为我尝试安装的 exe 附加了相同的开关,它似乎属于 已编辑 高级安装程序>> (自解压 Microsoft CAB 存档)

命令开关: /extract:path ; /log[:path] ; /lang:lcid ;/安静 ; /被动的 ; /norestart ; /forcerestat

我尝试过的各种命令/块: Python

p = subprocess.Popen(r'path\file.exe /quiet /v"INSTALLDIR=\"path""', shell=True)
p = subprocess.Popen(r'path\file.exe /quiet TARGETDIR="path""')

我在使用 powershell 时遇到了同样的问题。

感谢任何帮助。

【问题讨论】:

    标签: python-3.x powershell automation silent-installer cab


    【解决方案1】:

    可根据产品内置的安装程序软件选择开关。例如,Puppet 安装程序 exe 可以通过这种方式通过 Powershell 传递参数 - 您可以在安装程序中利用这种语法。

                Start-Process -FilePath C:\temp\puppet-agent-x64-latest.msi -ArgumentList "/qn /norestart -L* c:\temp\mylog.txt" -wait
    

    【讨论】:

    • 感谢您的即时答复,是的,我尝试了与静默安装相同的语法,但我正在寻找的是更改安装的路径/目录。
    • 正如@mklement0 所说,您需要设置属性APPDIR 的值,正如您在上面的示例中看到的那样。
    • @BogdanMitrache 它不起作用,因为打包技术似乎是 自解压 Microsoft CAB 存档 而不是高级安装程序,我已经更新了我之前的问题以及确切的驱动程序我正在合作。
    【解决方案2】:

    注意:这个答案解决了joy的问题,但它应该适用于基于MSI的(基于Windows Installer)的安装程序可执行文件使用高级安装程序创建。


    The Advanced Installer documentation 表示APPDIR 是您可以从命令行覆盖的基于 MSI 的可执行文件的属性名称(未经测试):

    Python:

    p = subprocess.Popen(r'path\file.exe /quiet APPDIR="path"', shell=True)
    

    PowerShell,假设您要等待安装完成:

    Start-Process -Wait 'path\file.exe' '/quiet APPDIR="path"'
    

    【讨论】:

    • 感谢您的更新,我尝试设置APPDIR,但似乎不起作用。后来我发现这个软件 Ultimate Silent Switch Finder 使用它我惊讶地发现打包技术是 自解压 Microsoft CAB 存档而不是我在比较时错误地使用的高级安装程序开关.. 最糟糕的是,我似乎无法找到有关此的确切文档。我已经修改了上面的问题,包括我正在使用的 exe 驱动程序 -AccessDatabaseEngine_X64.exe
    • @joy,我已经更新了答案以澄清它仅适用于基于 MSI 的高级安装程序可执行文件,这可能对未来的读者仍有帮助。至于文档:它是here,但它并没有告诉你比你已经知道的更多的信息。你试过/extract吗?我不清楚它的确切目的(临时提取位置与安装目录。)
    • 太好了。至于 `/extract` 的具体功能,似乎是提取软件更新包,你可能想在这里查看澄清link。但是我不认为 exe 下提供的任何开关有助于更改目标目录。
    • 感谢您的链接,@joy。所以答案可能是您根本无法在安装时更改安装目录。它可能不是您的选择,但创建基于 MSI 的可执行文件可以解决问题。
    • 我的荣幸,@joy。重新符号链接:我的意思是相反:创建一个符号链接,安装程序将尝试写入该符号链接,并希望它使用该符号链接,从而导致在那里复制的文件被重定向到您的自定义位置。
    【解决方案3】:

    似乎有任何可用于 AccessDatabaseEngine_X64.exe 的目标/路径, 我发现的唯一解决方法是使用 /extractmsiexe 中取出,然后使用 @mklement0建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 2021-03-17
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多