NSIS/Examples/LogicLib.nsi

97 lines
2.3 KiB
NSIS
Raw Normal View History

Name "NSIS LogicLib Example"
OutFile "example.exe"
SilentInstall silent
!include "logiclib.nsh"
!define MsgBox "MessageBox MB_OK"
Section
; if..elseif..else..endif
StrCpy $R1 1 ;change to test the following if statement
${if} $R1 = 1
MessageBox MB_OK "if: R1=1"
${elseif} $R1 = 2
MessageBox MB_OK "ifelse: R1=2"
${else}
MessageBox MB_OK "else: R1=$R1"
${endif}
; ifthen..|..|
StrCpy $R1 1 ; change to test ifthen statement.
${ifthen} $R1 = 1 ${|} MessageBox MB_OK "R1=1" ${|}
; ifcmd..||..|
StrCpy $R1 "example.nsi" ; change to test ifcmd statement
${ifcmd} IfFileExists "example.nsi" ${||} MessageBox MB_OK "IfFileExists: R1=$R1" ${|}
; select..case..case2..case3..case4..case5..case_else..endselect
StrCpy $R1 1 ;change to test the following if statement
${select} $R1
${case} "1"
MessageBox MB_OK "case: R1=1"
${case} "2"
MessageBox MB_OK "case: R1=2"
${case2} "3" "4"
MessageBox MB_OK "case2: R1=3 or 4, R1=$R1"
${case_else}
MessageBox MB_OK "caseelse: R1=$R1"
${endselect}
; for..exitfor..next
${for} $R1 1 5
MessageBox MB_OK "for: R1=$R1"
${next}
; foreach..exitfor..next
${foreach} $R1 10 1 - 1
MessageBox MB_OK "foreach: R1=$R1"
${next}
; do..exitdo..loop
StrCpy $R1 0
${do}
IntOp $R1 $R1 + 1
MessageBox MB_YESNO "Do..Loop statement test, iteration $R1.$\nDo you want to stop?" IDYES 0 IDNO +2
${exitdo}
${loop}
; do..exitdo..loopuntil
StrCpy $R1 0
${do}
IntOp $R1 $R1 + 1
${loopuntil} $R1 >= 5 ; Change to test loop until
MessageBox MB_OK "do..loopuntil: R1=$R1"
; dountil..exitdo..loop
StrCpy $R1 0
${dountil} $R1 >= 5 ; Change to test loop until
IntOp $R1 $R1 + 1
${loop}
MessageBox MB_OK "dountil..loop: R1=$R1"
; exitdo statement test
StrCpy $R1 0
StrCpy $R2 0
${do}
IntOp $R1 $R1 + 1
IntCmp $R1 5 +2 +2 0
${exitdo}
StrCpy $R2 0
${do}
IntOp $R2 $R2 + 1
MessageBox MB_OK "loop1: $R1$\nloop2: $R2"
IntCmp $R2 5 0 +2 0
${exitdo}
${loop}
${loop}
MessageBox MB_OK "loopR1: $R1$\nloop2: $R2"
; while..exitwhile..endwhile
StrCpy $R1 0
${while} $R1 < 5 ;change to test while statement.
IntOp $R1 $R1 + 1
${endwhile}
MessageBox MB_OK "while: R1=$R1"
SectionEnd