nsis接收命令列引數,實現動態安裝

2021-08-03 10:23:47 字數 1345 閱讀 8222

功能:通過接收外部exe傳入的引數,實現動態安裝對應的安裝包,以及動態設定安裝路徑

額外說明:外部傳入的引數是通過命令列引數的方式傳入的

; script generated by the hm nis edit script wizard.  

var str4500

var str4501

var str4700

var strproductname

!include "logiclib.nsh"

!include "filefunc.nsh"

name "dc系列"

outfile "setup.exe"

silentinstall silent

autoclosewindow true

showinstdetails nevershow

section "mainsection" sec01

#通過命令列設定需要安裝的產品名稱和安裝路徑

push $r0

push $r1

push $r2

#獲取命令列引數,形式:-product=「dc-4501」 -path="d:\temp"

$ $r0

#解析引數資料

$ $r0 "-product=" $r1

$ $r0 "-path=" $r2

pop $r0

#設定安裝路徑

strcpy $instdir "$r2"

setoutpath "$instdir"

setoverwrite ifnewer

file "d:\nsispackage\公共檔案.txt"

strcpy $strproductname $r1

$ $r1 == $str4500

file /r "d:\nsispackage\dc-4500"

$ $r1 == $str4501

file /r "d:\nsispackage\dc-4501"

$ $r1 == $str4700

file /r "d:\nsispackage\dc-4700"

$ pop $r1

pop $r2

sectionend

function .oninit

call setstring

functionend

function setstring

strcpy $str4500 "dc-4500"

strcpy $str4501 "dc-4501"

strcpy $str4700 "dc-4700"

functionend

python接收命令列引數

需要使用到sys庫里的argv屬性。sys.argv 返回乙個引數列表 len sys.argv 返回引數個數 其中第乙個引數為檔名 檔案test.py import sys print sys.argv終端輸入 python test.py arg1 arg2output test.py arg1...

PHP從命令列接收引數

昨天,在牛客網做華為機試題,不太熟悉它的環境,吃了大虧。測試樣例是通過標準輸入輸入的,執行結果是通過標準輸出輸出的。標準輸入就是鍵盤,標準輸出就是顯示器。經過大量實踐,發現fscanf 最好用,沒有之一!mixed fscanf resource handle,string format mixed...

Spring Boot程式接收命令列引數

spring boot程式可以通過實現commandlinerunner介面,接收來自命令列的引數。通過spring boot提供的工具,生成樣例框架程式,不用勾選任何其它額外依賴功能。package cn.codenotes.springboot.cmdline import org.spring...