我正在尝试使用NSIS脚本创建一个exe文件,在我的脚本中我正在复制批处理文件和已安装的Jasper Server目录中的文件夹(可能是任何目录)
这是我的NSIS脚本 -
* Section
SetOutPath "C:\PROGRA~2\JASPER~1.0\buildomatic"
File /r "C:\Users\Desktop\K-installer\backup3101"
File "C:\Users\Desktop\K-installer\batch\demo.bat"
ExecWait '"C:\PROGRA~2\JASPER~1.0\buildomatic\demo.bat"'
SectionEnd *
在程序文件(x86)中安装jasper服务器时工作正常。 如何为程序文件和程序文件(x86)概括它。
答案 0 :(得分:1)
这可能不是超级优雅,但您可以检查“Program Files(x86)”目录“C:\ PROGRA~2 \ JASPER~1.0 \ buildomatic”是否存在,并检查“C:\ PROGRA~1 \” JASPER~1.0 \ buildomatic“for”Program Files“。然后,您可以根据自己的需要进行单独分支处理。
在这里你可以找到:
http://nsis.sourceforge.net/IfFileExists_Changes_Section_Flags
我希望这对你有帮助。
编辑:您可能想尝试这样的事情(警告未经测试):
Section /o "Program Files(x86)" prg2
SetOutPath "C:\PROGRA~2\JASPER~1.0\buildomatic"
File /r "C:\Users\Desktop\K-installer\backup3101"
File "C:\Users\Desktop\K-installer\batch\demo.bat"
ExecWait '"C:\PROGRA~2\JASPER~1.0\buildomatic\demo.bat"'
SectionEnd
Section /o "Program Files)" prg1
SetOutPath "C:\PROGRA~1\JASPER~1.0\buildomatic"
File /r "C:\Users\Desktop\K-installer\backup3101"
File "C:\Users\Desktop\K-installer\batch\demo.bat"
ExecWait '"C:\PROGRA~1\JASPER~1.0\buildomatic\demo.bat"'
SectionEnd
Function .onInit
IfFileExists C:\PROGRA~1\JASPER~1.0\buildomatic Prog1Exists PastProg1Exists
Prog1Exists:
; Use the macro from sections.nsh
!insertmacro SelectSection ${prg1}
PastProg1Exists:
IfFileExists C:\PROGRA~2\JASPER~1.0\buildomatic Prog2Exists PastProg2Exists
Prog2Exists:
; Use the macro declared above
!insertmacro SelectSection ${prg2}
PastProg2Exists:
FunctionEnd