我想在我的NSIS腳本正在編譯時調用一個函數(它計算我的版本號),但不是在執行時。這可能嗎?它使用nsExec
和基本的字符串操作函數。如何在編譯腳本時調用NSIS中的函數?
1
A
回答
1
甜!這是可能的:看http://nsis.sourceforge.net/Invoking_NSIS_run-time_commands_on_compile-time
的基本思路是:
- 編譯一個單獨腳本,在你的主腳本生成可執行
- 運行可執行文件(通過
!system
,在編譯的時候) - 和這會產生一個文本文件(!define
小號無論你需要) !include
在主腳本的文本文件
and presto!你已經在編譯時在腳本中生成了一些東西。
2
你可以這樣做:
!system '"calculate_version.exe" "tempfile.tmp"'
!searchparse /file "tempfile.tmp" `APP_VERSION=` APPVERSION
這樣做什麼:調用calculate_version.exe(這可能是一個簡單的NSIS腳本調用你的函數)。這個可執行文件應該輸出版本號爲tempfile.tmp。版本的格式不重要;在這個例子中我選擇了「APP_VERSION = something」(這可以使用WriteINIStr
來寫)。
在下一行中,我們打開臨時文件並搜索它所寫的行;那麼我們將$ {APPVERSION}設置爲我們在那裏找到的任何東西。
相關問題
- 1. 如何使用ant編譯NSIS腳本?
- 2. 使用Eclipse編譯一組NSIS腳本
- 3. 如何根據命令行參數條件編譯NSIS腳本?
- 4. 是否可以反編譯NSIS腳本?
- 5. 如何使用NSIS腳本
- 6. 基於文件存在的NSIS腳本條件編譯
- 7. Python編譯器函數在編譯時調用
- 8. 在NSIS腳本
- 9. emacs編譯:在後臺調用腳本
- 10. 如何在編譯腳本執行時添加調試標誌:
- 11. 在運行時編譯函數C++編譯時編譯的函數的數量
- 12. 在C++中函數調用次數的編譯時間限制
- 13. 如何在NSIS中的函數內調用目錄頁面?
- 14. 編譯器如何決定何時使用vPtr調用函數
- 15. 如何在JS中預編譯腳本
- 16. 編譯時間動態函數調用
- 17. 如何在Ruby中調用內置的編譯器函數?
- 18. 使用HttpClient在Azure函數中給出'腳本編譯失敗'
- 19. NSIS編譯器和參數
- 20. 腳本終止時的調用函數
- 21. 如何在運行時編譯函數?
- 22. 如何編譯julia腳本?
- 23. PHP腳本如何編譯?
- 24. 在Java腳本API中的腳本中調用Javascript函數
- 25. 如何僅在所有腳本加載時調用函數?
- 26. 何時在angularjs中使用鏈接函數和編譯函數?
- 27. 在編譯時宏下查找函數/宏調用的數量
- 28. 如何調用稍後在Python腳本中的函數?
- 29. 如何在JSP中的onClick(button)上調用Java腳本函數?
- 30. 如何在Python腳本中調用我自己的Matlab函數
我實際上更喜歡我引用的文章中的想法(與您的文章幾乎相同),因爲在關聯的腳本(寫入!定義等)中完成了艱苦的工作,而不是必須解析您需要的內容主要劇本。 – 2009-02-09 08:44:47