2012-10-25 47 views
0

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

我很感激任何指针,我做错了什么。

回答

0

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

对于这样的版本检查,除非它是Win8特定的,否则应该具有类似于“if $ major> 6或($主要== 6和$小于> = 2)“所以它也适用于Win9等