1. 程式人生 > >NSISI基本語法---變數

NSISI基本語法---變數

變數定義:var關鍵字來定義變數,使用$來引用變數;變數是全域性的並且是大小寫敏感的。

1、系統常用變數

變數及其含義
變數 $INSTDIR $PROGRAMFILES $COMMONFILES $DESKTOP $EXEDIR ${NSISDIR} $WINDIR
含義 使用者定義的解壓路徑 程式檔案目錄 公用檔案目錄 Windows 桌面目錄預設為當前使用者 安裝程式執行時的位置。 包含 NSIS 安裝目錄的一個標記。……

Windows 目錄

 

預設目錄    C:\Program Files C:\Program Files\Common Files C:\windows\desktop   常用於在你想呼叫一個在 NSIS 目錄下的資源時,例如:圖示、介面

 C:\windows 或 

C:\winnt

執行時檢測,適用OS    
變數 $SYSDIR $TEMP $STARTMENU $SMPROGRAMS $SMSTARTUP $QUICKLAUNCH $DOCUMENTS
含義 Windows 系統目錄 系統臨時目錄 開始選單目錄 開始選單程式目錄 開始選單程式/啟動 目錄   文件目錄
預設目錄

 C:\windows\system 或

 C:\winnt\system32 

C:\windows\temp

取決於

 SetShellVarContext 

設定。

預設為當前使用者

同左 同左   C:\Documents and Settings\Foo\My Documents
執行時檢測,適用OS       在 IE4 活動桌面及以上的快速啟動目錄  Windows 95 且 Internet Explorer 4 沒有安裝時無效。
變數 $SENDTO $RECENT $FAVORITES $MUSIC $PICTURES $VIDEOS $NETHOOD
含義 該目錄包含了“傳送到”選單快捷項 該目錄包含了指向使用者最近文件的快捷方式 該目錄包含了指向使用者網路收藏夾、文件等的快捷方式。 使用者的音樂檔案目錄 使用者的圖片目錄 使用者的視訊檔案目錄 該目錄包含了可能存在於我的網路位置、網路上的芳鄰資料夾的連結物件
預設目錄     同上 同左 同左 同左  
執行時檢測,適用OS     該常量在 Windows 95 且 Internet Explorer 4 沒有安裝時無效 僅在 Windows XP、ME 及以上才有效。 僅在 Windows 2000、XP、ME 及以上才有效。 該常量僅在 Windows XP、ME 及以上才有效。 在 Windows 95 且 Internet Explorer 4 和活動桌面沒有安裝時無效
變數 $FONTS $TEMPLATES $APPDATA $PRINTHOOD $INTERNET_CACHE $COOKIES $HISTORY
含義 系統字型目錄 文件模板目錄 應用程式資料目錄 該目錄包含了可能存在於印表機資料夾的連結物件 Internet Explorer 的臨時檔案目錄。

Interne tExplorer

 的 Cookies 目錄。

Internet Explorer 的歷史記錄目錄
預設目錄   這個常量的內容(所有使用者或當前使用者)取決於 SetShellVarContext設定。預設為當前使用者 同左  

 

   
執行時檢測,適用OS     在 Windows 95 且 Internet Explorer 4 和活動桌面沒有安裝時無效 在 Windows 95 和 Windows 98 上無效。 在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活動桌面沒有安裝時無效。 在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活動桌面沒有安裝時無效 量在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活動桌面沒有安裝時無效
變數 $PROFILE $ADMINTOOLS $RESOURCES $RESOURCES_LOCALIZED $CDBURN_AREA $HWNDPARENT $PLUGINSDIR
含義 使用者的個人配置目錄 一個儲存管理工具的目錄 該資源目錄儲存了主題和其他 Windows 資源 該本地的資源目錄儲存了主題和其他 Windows 資源 一個在燒錄 CD 時儲存檔案的目錄 父視窗的十進位制 HWND。 儲存給InstallOptions 使用的 INI 檔案、啟動畫面點陣圖或其他外掛執行需要的檔案
預設目錄  C:\Documents and Settings\Foo 這個常量的內容(所有使用者或當前使用者)取決於SetShellVarContext 設定。預設為當前使用者 C:\Windows\Resources  C:\Windows\Resources\1033      
執行時檢測,適用OS 在 Windows 2000 及以上有效。 該常量在 Windows 2000、ME 及以上有效 是;該常量在 Windows XP 及以上有效 是;在 Windows XP 及以上有效。 在 Windows XP 及以上有效。    

注:執行時檢測.,,沒有是預設為否,

適用OS未田表示,預設all;

對於這些變數:明白表達的是什麼意思,所指定的目錄是哪個就可以了其餘的可以忽略。

附:      

  “這個常量的內容(所有使用者或當前使用者)取決於SetShellVarContext 設定。預設為當前使用者”

  看下賈老師的回答 :

NSIS 中部分變數可以通過一個環境設定命令 SetShellVarContext 來設定:

# 設定為當前使用者
SetShellVarContext current
# 此時 $DESKTOP 指向 C:\Users\Administrator\Desktop
# 設定為所有使用者
SetShellVarContext all
# 此時 $DESKTOP 指向 C:\Users\Public\Desktop
SetShellVarContext 會影響到如 $DESKTOP、$DOCUMENTS、$SMPROGRAMS、$APPDATA 等很多變數的值

(怎麼設定先不管,先繼續學習)

2、其他常用的系統變數

$ 0,$ 1,$ 2,$ 3,$ 4,$ 5,$ 6,$ 7,$ 8,$ 9,$ R0,$ R1,$ R2,$ R3,$ R4,$ R5,$ R6,$ R7,$ R8,$ R9 暫存器。

這些變數可以像使用者變數一樣使用,但通常用於共享函式或巨集。您不必宣告這些變數,因此在共享程式碼中使用它們時不會出現任何名稱衝突。在共享程式碼中使用這些變數時,建議您使用堆疊來儲存和恢復其原始值。這些變數也可用於與外掛進行通訊,因為它們可以由外掛DLL讀取和寫入

3、自定義變數

[/ GLOBAL] var_name
var variableName

 

參考文章:

NSIS使用手冊

靜默虛空