2012-10-25 77 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等