NSIS:如何检查var是否存在
检查NSIS中是否存在var的最佳方法是什么 目前我做的事情如下:NSIS:如何检查var是否存在,nsis,Nsis,检查NSIS中是否存在var的最佳方法是什么 目前我做的事情如下: ${If} $NonExistentVar == $$NonExistentVar 但是,如果现有var某些_var的值为$some _var,这将无法按预期工作,我知道这很少见,但是,有没有更好的方法来检查它 section non_existent_var detailprint "non existent: $NonExistentVar" var /global ExistentVar deta
${If} $NonExistentVar == $$NonExistentVar
但是,如果现有var某些_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
为什么不使用define?这毕竟是一个应该在编译时进行的检查
!macro DeclareDetactableVariable name
!ifndef VAR_${name}
Var /Global ${name}
!define VAR_${name}
!endif
!macroend
!insertmacro DeclareDetactableVariable foo
!ifdef VAR_foo
...
!endif