NSIS 获取上级目录脚本

[code]; GetParent
; 输入,堆栈顶部 (例如 C:\Program Files\Poop)
; 输出,堆栈顶部 (替换,例如 C:\Program Files)
; 不改变其它变量值。
;
; 用法:
; Push “C:\Program Files\Directory\Whatever”
; Call GetParent
; Pop $R0
; ; 在这里 $R0 将等于"C:\Program Files\Directory"

Function GetParent

Exch $R0
Push $R1
Push $R2
Push $R3

StrCpy $R1 0
StrLen $R2 $R0

loop:
IntOp $R1 $R1 + 1
IntCmp $R1 $R2 get 0 get
StrCpy $R3 $R0 1 -$R1
StrCmp $R3 "" get
Goto loop

get:
StrCpy $R0 $R0 -$R1

 Pop $R3
 Pop $R2
 Pop $R1
 Exch $R0

FunctionEnd
[/code]