[英]NSIS: How to check if a var exists
檢查NSIS中是否存在var的最佳方法是什么?
目前,我正在執行以下操作:
${If} $NonExistentVar == $$NonExistentVar
但是,如果現有的var some_var
具有$some_var
的值,這將無法正常工作,我知道這很罕見,但是,有沒有更好的檢查方法?
section non_existent_var
detailprint "non existent: $NonExistentVar"
var /global ExistentVar
detailprint "existent: $ExistentVar"
${If} $NonExistentVar == $$NonExistentVar
detailprint "PASS: NonExistent doesn't exist"
${Else}
detailprint "FAIL: NonExistent exists"
${EndIf}
${If} $ExistentVar == $$ExistentVar
detailprint "FAIL: ExistentVar doesn't exist"
${Else}
detailprint "PASS: ExistentVar exists"
${EndIf}
strcpy $ExistentVar "$$ExistentVar"
${If} $ExistentVar == $$ExistentVar
detailprint "FAIL: ExistentVar doesn't exist"
${Else}
detailprint "PASS: ExistentVar exists"
${EndIf}
SectionEnd
得到:
non existent: $NonExistentVar
existent:
PASS: NonExistent doesn't exist
PASS: ExistentVar exists
FAIL: ExistentVar doesn't exist
Completed
為什么不使用定義? 畢竟這是應該在編譯時進行的檢查。
!macro DeclareDetactableVariable name
!ifndef VAR_${name}
Var /Global ${name}
!define VAR_${name}
!endif
!macroend
!insertmacro DeclareDetactableVariable foo
!ifdef VAR_foo
...
!endif
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.