NSIS Logic Library - dselkirk's logiclib 2.0:
- Complete rewrite using new push/pop system. git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3275 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
2c892dde45
commit
46297fa6cd
2 changed files with 523 additions and 346 deletions
|
@ -1,22 +1,97 @@
|
|||
Name "test"
|
||||
OutFile "test.exe"
|
||||
Name "NSIS LogicLib Example"
|
||||
OutFile "example.exe"
|
||||
SilentInstall silent
|
||||
|
||||
!include "logiclib.nsh"
|
||||
!define MsgBox "MessageBox MB_OK"
|
||||
|
||||
Section
|
||||
${IF} "test" = "test2"
|
||||
MessageBox MB_OK "test"
|
||||
${ELSE}
|
||||
${IF} "test" = "test"
|
||||
${SELECT} 5
|
||||
${CASE} 4
|
||||
MessageBox MB_OK "case 4"
|
||||
${CASE} 5;6
|
||||
MessageBox MB_OK "case 5 or 6"
|
||||
${CASE_ELSE}
|
||||
MessageBox MB_OK "case else"
|
||||
${ENDSELECT}
|
||||
${ENDIF}
|
||||
${ENDIF}
|
||||
|
||||
; 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
|
Loading…
Add table
Add a link
Reference in a new issue