有条件地复制文件

时间:2012-10-25 18:10:16

标签: nsis

我正在尝试在我的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脚本编译错误。

我很欣赏任何关于我做错的指示。

1 个答案:

答案 0 :(得分:0)

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

对于像这样的版本检查,除非它是Win8特定的,你应该有类似于“if $ major> 6或($ major == 6和$ minor> = 2)”的逻辑,所以它也适用于Win9等