【问题标题】:Copy file over conditionally有条件地复制文件
【发布时间】:2012-10-26 05:12:05
【问题描述】:

我正在尝试在我的 NSIS 脚本中执行以下操作。我不知道 NSIS,我只是下达了一个任务来调整一些东西。想法:如果这是window8,则从其他位置获取一些.exe文件以部署到目标机器上:

所以我从获取版本开始:

ReadRegStr $WINVER HKLM \
 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion

在要安装的文件列表中我这样做:

;List of files to install
File file1.exe
File file2.exe

${If} StrCmp $WINVER '6.2'
  File .\otherlocationSource\file1.exe
  File .\otherlocationSource\file2.exe
${EndIf}

我在 ${if}... 行收到 NSIS 脚本编译错误。

我会很感激任何关于我做错了什么的指示。

【问题讨论】:

    标签: nsis


    【解决方案1】:

    ${If} 宏在内部使用 StrCmp,语法为 ${If} $WINVER == "6.2",但您确实应该使用 WinVer.nsh 进行版本检查。 (如果您的本地副本不支持Win8,您可以从SVN获取版本值)

    对于这样的版本检查,除非它是特定于 Win8 的,否则您应该具有类似于“如果 $major > 6 或 ($major == 6 and $minor >= 2)”的逻辑,因此它也适用于 Win9 等

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2013-04-21
      • 2014-02-26
      相关资源
      最近更新 更多