!macro UP small large StrCmp $2 ${small} 0 +3 StrCpy $4 "$4${large}" Goto jump !macroend ; Push string ; Pop string with UPPER CASE Function UpperCase Exch $0 Push $1 ; counter Push $2 ; temp char Push $3 ; str len Push $4 ; new str StrCpy $4 "" StrLen $3 $0 StrCpy $1 0 loop: StrCpy $2 $0 1 $1 IntOp $1 $1 + 1 !insertmacro UP a A !insertmacro UP b B !insertmacro UP c C !insertmacro UP d D !insertmacro UP e E !insertmacro UP f F !insertmacro UP g G !insertmacro UP h H !insertmacro UP i I !insertmacro UP j J !insertmacro UP k K !insertmacro UP l L !insertmacro UP m M !insertmacro UP n N !insertmacro UP o O !insertmacro UP p P !insertmacro UP q Q !insertmacro UP r R !insertmacro UP s S !insertmacro UP t T !insertmacro UP u U !insertmacro UP v V !insertmacro UP w W !insertmacro UP x X !insertmacro UP y Y !insertmacro UP z Z StrCpy $4 "$4$2" jump: IntCmpU $1 $3 0 loop 0 StrCpy $0 $4 Pop $4 Pop $3 Pop $2 Pop $1 Exch $0 FunctionEnd