@echo off
set FILES_DIR=.\sample
set SOFT_NAME=示例
set EXE_NAME=sample
set ROOT_DIR=sample
set LINK_DIR=bin
REM NISI文件内容
echo ;--------------------------------
echo ;Include Modern UI
echo !include "MUI2.nsh"
echo ;--------------------------------
echo ;General
echo ;Name and file
echo Name "%SOFT_NAME%"
echo OutFile "%EXE_NAME%.exe"
echo Unicode True
echo ;Default installation folder
echo InstallDir "$PROGRAMFILES\%ROOT_DIR%"
echo ;Request application privileges
echo RequestExecutionLevel user
echo ;--------------------------------
echo ;Variables
echo Var StartMenuFolder
echo ;--------------------------------
echo ;Pages
echo !insertmacro MUI_PAGE_DIRECTORY
echo !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
echo !insertmacro MUI_PAGE_INSTFILES
echo ;unstall
echo !insertmacro MUI_UNPAGE_CONFIRM
echo !insertmacro MUI_UNPAGE_INSTFILES
echo ;--------------------------------
echo ;Languages
echo !insertmacro MUI_LANGUAGE "SimpChinese"
echo ;--------------------------------
echo ;Installer Sections
echo ;安装设置
echo Section
echo SetOutPath "$INSTDIR"
REM /nonfatal :当目录下不存在文件时,仅告警提示
echo file /nonfatal %FILES_DIR%\*.*
call :find_dir %FILES_DIR%
echo ;桌面快捷方式
echo createShortCut "$DESKTOP\%SOFT_NAME%.lnk" "$INSTDIR\%LINK_DIR%\%EXE_NAME%.exe"
echo ;Create uninstaller
echo WriteUninstaller "$INSTDIR\Uninstall.exe"
echo !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
echo ;Create shortcuts
echo CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
echo createShortCut "$SMPROGRAMS\$StartMenuFolder\%SOFT_NAME%.lnk" "$INSTDIR\%LINK_DIR%\%EXE_NAME%.exe"
echo CreateShortcut "$SMPROGRAMS\$StartMenuFolder\卸载.lnk" "$INSTDIR\Uninstall.exe"
echo !insertmacro MUI_STARTMENU_WRITE_END
echo SectionEnd
echo ;卸载设置
echo Section "Uninstall"
echo RMDir /r "$INSTDIR"
echo Delete "$DESKTOP\%SOFT_NAME%.lnk"
echo !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
echo Delete "$SMPROGRAMS\$StartMenuFolder\%SOFT_NAME%.lnk"
echo Delete "$SMPROGRAMS\$StartMenuFolder\卸载.lnk"
echo RMDir "$SMPROGRAMS\$StartMenuFolder"
echo SectionEnd
goto :end
:find_file
for %%a in (%1\*.*) do (
echo setOutPath $INSTDIR%2
echo file %1\*.*
goto :end
)
goto:eof
:find_dir
for /f %%a in ('dir %1 /b /ad') do (
call :find_file %1\%%a %2\%%a
call :find_dir %1\%%a %2\%%a
)
:end
samle-install.nsi.bat
最新推荐文章于 2024-04-29 10:49:12 发布