Batch file 如何创建同时适用于程序文件和程序文件(x86)的exe?
我正在尝试使用NSIS脚本创建一个exe文件,在我的脚本中,我正在复制一个批处理文件和已安装的Jasper服务器目录中的一个文件夹(可以是任何目录) 这是我的NSIS脚本-- 当jasper服务器安装在程序文件(x86)中时,这种方法可以正常工作。Batch file 如何创建同时适用于程序文件和程序文件(x86)的exe?,batch-file,nsis,batch-processing,Batch File,Nsis,Batch Processing,我正在尝试使用NSIS脚本创建一个exe文件,在我的脚本中,我正在复制一个批处理文件和已安装的Jasper服务器目录中的一个文件夹(可以是任何目录) 这是我的NSIS脚本-- 当jasper服务器安装在程序文件(x86)中时,这种方法可以正常工作。 如何将其推广到程序文件和程序文件(x86)。这可能不是非常优雅,但您可以检查“程序文件(x86)”是否存在目录“C:\PROGRA~2\JASPER~1.0\buildomatic”,以及“程序文件”是否存在目录“C:\PROGRA~1\JASPER
如何将其推广到程序文件和程序文件(x86)。这可能不是非常优雅,但您可以检查“程序文件(x86)”是否存在目录“C:\PROGRA~2\JASPER~1.0\buildomatic”,以及“程序文件”是否存在目录“C:\PROGRA~1\JASPER~1.0\buildomatic”。然后,您可以进行单独的分支,并根据您的需要在那里处理所有事情 在这里,您可以找到如何: 我希望这对你有帮助 编辑:您可能希望尝试以下操作(警告未测试):
我们是否可以更改Function.onInit名称,因为它已经存在?例如,您可以将“Function.onInit”重命名为“Function Hello”,然后从其他地方使用“call Hello”调用它。你可以在这里了解更多:不要检查xxx~#,它可能不是程序文件,它可能是任何东西!
* 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 *
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