我正在尝试在我的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 :(得分:0)
$ {If}宏在内部使用StrCmp,语法为${If} $WINVER == "6.2"
,但您确实应该使用WinVer.nsh进行版本检查。 (如果您的本地副本不支持Win8,您可以从SVN获取版本值)
对于像这样的版本检查,除非它是Win8特定的,你应该有类似于“if $ major> 6或($ major == 6和$ minor> = 2)”的逻辑,所以它也适用于Win9等