1. 程式人生 > >NSISI基本語法---編譯器指令

NSISI基本語法---編譯器指令

接下來的一些都是使用NSIS打包的時候常用的一些指令(或者說是,類似於程式碼中的“型別”)

1、File

作用:釋放檔案到當前輸出路徑。(使用中與 SetOutPath 配合使用,,一般直接給出指定的目錄即可)

常用引數:

 /nonfatal 開關且當檔案未找到時使用警告來代替錯誤

 /a 開關,則被新增的檔案的屬性將會保持

 /r 開關,匹配的檔案將會在子目錄裡被遞迴的搜尋。如果目錄名匹配則所有包含的內容都會被遞迴新增,目錄結構也會被保持

 /x 開關可以用來來排除檔案或目錄

[/nonfatal] [/a] ([/r] [/x file|wildcard [...]] (file|wildcard) [...] | /oname=file.dat infile.dat)
InstallDir "C:\Ma_Hong_Kai"
;…… 
SetOutPath $INSTDIR                      ; $INSTDIR--- 使用者定義的解壓路徑,和InstallDir配合使用
File "..\build\Win32\release\mahongkai\mahongkai.dll"
InstallDir "C:\Ma_Hong_Kai"
;…… 
SetOutPath $INSTDIR                     
File /r "..\mahongkai.dll"

2、Delete

作用:從目標系統刪除檔案(可以是檔案或萬用字元,但應使用完整路徑指定)

[/REBOOTOK] file
Delete "$INSDIR\mahongkai.dll"

如果無法刪除,啟動後刪除

Delete /REBOOTOK "$INSDIR\mahongkai.dll"

3、Rename

作用:把原始檔重新命名為目標檔案

[/ REBOOTOK] source_file dest_file
Rename $INSTDIR\mahongkai.dll $INSTDIR\mahongkai.dat

4、CreateDirectory

作用:建立 (遞迴建立) 指定的目錄。當目錄不能建立時會放置一個錯誤標記。你也可以指定一個絕對路徑

Var /GLOBAL  G_AGi ;定義的變數都是全域性變數,

CreateDirectory "$G_AGi \「開始」選單\程式\MHk"

5、RMDir

作用:刪除指定的目錄(沒有萬用字元的完全限定路徑,無法刪除當前工作目錄)

[/ r] [/ REBOOTOK] directory_name
  RMDir /r /REBOOTOK "$APPDATA\mahongkai"

6、SetOutPath

作用:設定輸出路徑($OUTDIR)且當路徑不存在時建立(需要時會遞迴建立)。必須為絕對路徑名,通常都使用 $INSTDIR

SetOutPath $ INSTDIR

7、CreateShortCut

作用:建立快捷檔案.lnk 目標檔案

link.lnk target.file [parameters [icon.file [icon_index_number [start_options [keyboard_shortcut [description]]]]]]
CreateShortCut  "$AGI\ 「開始」選單\程式\MHK\mahongkailnk.lnk" "$INSTDIR\mahongkaiexe.exe" "" "$INSTDIR\mahongkaiexe.exe" 0

 

引數說明: 

/ REBOOTOK 重新啟動時進行命令指定的操作,比如  RMDir / REBOOTOK $ INSTDIR  新啟動時將刪除在此過程中無法刪除的任何檔案或目錄

NSIS使用手冊(講得很是詳細)

Ma_Hong_Kai 學習筆記,如有錯誤之處,歡迎指正。